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

用户投稿 42 0

关于“php_exec实例”的问题,小编就整理了【3】个相关介绍“php_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中shell_exec不能运行?

其实,你这里真是的需求,只是希望在Web这边获取一种方式,来执行一个长达数小时的“异步”任务。

就PHP而言,可以用2种方式来做:

(1)在PHP里使用shell_exec的函数,以shell的方式,启动一个独立的PHP脚本执行。

这种方式,其实相当于在Web服务器处理过程中,独立起了一个shell进程处理你的任务。

这里,需要特别注意的是shell_exec的服务器安全,注意校验参数,小心避免被带入shell命令中。

这个是比较容易实现的方式。

(2)使用PHP实现一个Server,监听一个端口,为Web端提供服务。这里的实现方式有很多,通常要配合扩展,例如原生的pthread(多线程),开源扩展swoole等等。

直接在web程序里使用多线程,是不恰当的,web请求通常有时间限制,例如timeout默认是30秒。你如何保证,在线程任务执行完之前,它的父进程仍然在工作?

php实现curl模拟ftp上传的方法?

本文实例讲述了php实现curl模拟ftp上传的方法。分享给大家供大家参考。具体如下:

<?php function upload($dir,$src,$dest) { $ch = curl_init(); $fp = fopen($src, 'r'); curl_setopt($ch, CURLOPT_URL, '@host/interpretation/'.$dir .'/'. $dest); curl_setopt($ch, CURLOPT_UPLOAD, 1); curl_setopt($ch, CURLOPT_INFILE, $fp); curl_setopt($ch, CURLOPT_INFILESIZE, filesize($src)); curl_exec ($ch); $error_no = curl_errno($ch); curl_close ($ch); if ($error_no != 0) { return 0; }else{ return 1; } } upload("images","s.py","aaa.py"); ?>

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

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