如何利用php 的exec执行nodejs文件? 如下执行却执行失败
public function exectask ($dirpath) { $serverpath = self::$serverpath; exec(node httpd.js $serverpath,$info, $val); var_dump($info); echo $val; }
如果仅仅是exec(node -v $serverpath,$info, $val);却可以输出版本号,执行成功。求解答,谢谢。
回复内容: 如何利用php 的exec执行nodejs文件? 如下执行却执行失败
public function exectask ($dirpath) { $serverpath = self::$serverpath; exec(node httpd.js $serverpath,$info, $val); var_dump($info); echo $val; }
如果仅仅是exec(node -v $serverpath,$info, $val);却可以输出版本号,执行成功。求解答,谢谢。
你可以换成 shell_exec 试试
我也有类似的用法,所以除了有能读出消息的之外,还有能直接后台执行的功能,都是通过进程实现的
/*** 返回的汉语文字信息在windows中是gb2312编码,需要手动改成utf8* iconv(gb2312,utf-8,$read);* @param $cmd* @return array*/public function execfront($cmd){ $response = array(); $handle = popen($cmd 2>&1, 'r'); while ($read = fread($handle, 20096)) { if(!mb_detect_encoding($read, 'utf-8', true)) iconv(gb2312,utf-8,$read); $response[] = trim($read); } pclose($handle); flush(); return $response;}/** * @param $cmd */public function execbackend($cmd){ if (substr(php_uname(), 0, 7) == windows){ pclose(popen(start cmd /c . $cmd, r)); } else { exec($cmd . > /dev/null &); } return;}