,php调用system或exec怎样立即返回?

用户投稿 144 0

关于“php_system_exec”的问题,小编就整理了【4】个相关介绍“php_system_exec”的解答:

php调用system或exec怎样立即返回?

$WshShell = new COM("WScript.Shell"); $oExec = $WshShell->Run("notepad.exe", 7, false); 或者 if (substr(php_uname(), 0, 7) == "Windows"){ pclose(popen("start /B ". $cmd, "r")); } else { exec($cmd . " > /dev/null &"); }

请教下php下的exec和query有什么不同啊?

具体的官方说法不清楚,但是使用过程中,一般exec是用来执行外部程序的,调用存储过程之类的,query是用来查询数据库使用的。

php的system函数的返回值代表什么啊?

system执行的是你指定的系统可执行程序。所以,成功情况下返回的是你的函数程序执行的结果,不成功的时候返回的是false.所以你数0的时候成功?有点奇怪。

php popen和system有什么区别?

popen和system都可以执行外部命令。 popen相当于是先创建一个管道,fork,关闭管道的一端,执行exec,返回一个标准的io文件指针。 system相当于是先后调用了fork, exec,waitpid来执行外部命令 popen本身是不阻塞的,要通过标准io的读取使它阻塞 system本身就是阻塞的。 最近写的程序,要求进程在调用的外部命令运行完毕之后,再继续 向下进行。 一开始调用的popen,然后只是用了fgetc,使其阻塞,但是总是阻塞不了。原因就是如果外部命令有很多的输出内容,那fgets在得到输出的第一个字符的时候就返回了,不在阻塞了;调用fread,如果size和nitems设置的不够大,也是一样的问题。比如外部命令要输出100个字符,结果size是sizeof(char),nitems是10,那么当fread读到地10个字符的时候,就已经满足条件了,就返回了。 正确的方法是调用system,因为system最后会调用waitpid,来等待子进程运行完毕。

到此,以上就是小编对于“php_system_exec”的问题就介绍到这了,希望介绍关于“php_system_exec”的【4】点解答对大家有用。

抱歉,评论功能暂时关闭!