大家好,又见面了,我是你们的朋友全栈君。
前言
- 有些php版本会禁用一些函数,在使用前请先将其解除禁用
- 解除禁用方法
- 找到你的php.ini,然后搜索disable_functions,将里面的禁用函数删除即可
参数解读 command是要执行的命令 output是获得执行命令中的每一个输出值
1、system
代码语言:javascript复制system($command,$return)
执行 系统命令/php自定义命令,并将相应的执行结果输出,同步进程,执行完后进行后续代码执行
2、exec
代码语言:javascript复制exec($command,$outpub,$return)
注意:exec输出的是命令执行结果的最后一行内容。如果你需要获取未经处理的全部输出数据,请使用passthru()函数。
3、passthru
代码语言:javascript复制passthru($command,$return_var)
4、 shell_exec
代码语言:javascript复制shell_exec($command)
4.1 反引号 `
代码语言:javascript复制echo `command`
反引号和shell_exec意思相同 在php中称之为执行运算符,PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回
以上方法是命令执行完才可执行后面程序,如果你的逻辑复杂,会影响用户体验,这时可以提供一个,异步执行的方法,通知服务器执行,不占用主程序进程的方法
5、popen pclose
代码语言:javascript复制 $storm=popen($command,'w');//打开一个进程通道
pclose($storm);
popen中的 w参数可以有 r/w ,r为读文件 w为谢文件 pclose要关闭他的返回值,不能直接关闭popen,如果写在一起会导致同步执行进程,可能造成程序卡死
下面两类不太常用可以看下,但是在一些特殊情况还是有更好的处理
6、proc_open
代码语言:javascript复制proc_open (string $cmd ,array $descriptorspec ,array &$pipes [, string $cwd [, array $env [, array $other_options ]]])
与popen函数类似,但是可以提供双向管道 popen函数具体解析
7、pcntl_exec
代码语言:javascript复制void pcntl_exec ( string $path [, array $args [, array $envs ]] )
path是可执行二进制文件路径或一个在文件第一行指定了 一个可执行文件路径标头的脚本 args是一个要传递给程序的参数的字符串数组。 pcntl是linux下的一个扩展,需要额外安装,可以支持 php 的多线程操作。 pcntl_exec函数的作用是在当前进程空间执行指定程序,版本要求:PHP > 4.2.0
pcntl函数具体解析
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186552.html原文链接:https://javaforall.cn