phppopen函数返回值,php用什么办法实现异步任务?

用户投稿 132 0

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

php用什么办法实现异步任务?

php实现异步任务的方法:

通用的异步执行文件 exec.phpsleep(8);

$data = "--- type " . date("Y-m-d H:i:s") . " ---\n";

file_put_contents("../log.txt", $data, FILE_APPEND);

popen

通过 popen() 函数打开进程文件指针,从而能异步执行脚本文件。(只在linux下有效)pclose(popen("php exec.php &", 'r'));

echo 1;

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,来等待子进程运行完毕。

万网的Unix主机Php屏蔽了哪些函数?

为了系统的安全性,万网的UNIX主机PHP屏蔽了以下函数: system,phpinfo,passthru,popen,exec

php安全模式影响哪些函数?

开启safe_mode之后对php系统函数的影响:

safe_mode即为PHP的安全模式,在php.ini中设置safe_mode = On重启PHP便可开启安全模式。

当安全模式开启后,PHP相应的一些系统函数,文件操作函数等将会受限。例如:

ckdir,

move_uploaded_file,

chgrp,

parse_ini_file,

chown,rmdir,

copy,

rename,

fopen,

require,

highlight_file,

show_source,

include,

symlink,

link,

touch,

mkdir,

unlink,

exec,

shell_exec,

pasathru,

system,

popen

除此之外,一些php扩展的函数也会受到限制,不能在程序里面直接加载扩展,只能到php.ini里加载,而且php如果需要执行操作系统的程序时,必须在safe_mode_exec_dir中指定程序的路径,否则执行将失败。

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

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