PHP如何在后台执行? 例如两个PHP文件A和B,我想在A执行的过程中给B传输数据并让B在后台执行,B执行的时候比较长,而且B所做的后续操作与A无关,所以让A继续执行后面的语句无需等待B结束,请问该如何实现?注:我使用的是Windows服务器 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 明白你的表述了.你这种想法可能在php上难到找解决方案. 可使用这个函数/** * 函数 tenor * 功能 启动一个url,但不等待返回 * 参数 $page,待执行的页面程序 * 返回 无 **/if(! function_exists('tenor')):function tenor($page) { $host = $_SERVER["HTTP_HOST"]; $fp = fsockopen($host, 80, $errno, $errmsg); if(!$fp) { echo "$errstr ($errno)<br>\n"; } else { fputs($fp,"GET /$page HTTP/1.0\nHost: $host\n\n"); fclose($fp); }}endif; 参数还是大量的数据呢?你要两个页面都独立起来,那要一次性把数据传过去。用ajax实现好了,这样相互独立。 请问启动这个url是在后台执行的吗?而且当包含这段代码的脚本结束会怎样?还有怎么给这个page传输数据? 传输一段文字,另外只用PHP实在的话该怎么做?能否说详细点? 在a页面加入 system('php B.php'); 在后台执行,也就是cli模式。去php安装目录找到php.exe这个文件,并且在命令行下执行它。具体方法去查手册或google:php cli模式。不过你说的这个需求,用不用cli模式都无所谓。其实这只是个异步请求而已。你说的A脚本在执行过程中给B脚本传输数据。其实可以使用http协议,然后POST或者GET参数来达到传数据的目的。5楼给你的那个函数,其实就是放在A脚本中用来通过HTTP协议请求B脚本的一个函数。你可以在B文件中直接使用$HTTP_GET_VARS或$HTTP_POST_VARS来得到A脚本传过去的数据。另外还可以使用CURL库来实现这种模拟http请求。 在a页面加入 system('php B.php');这种方法也可以。可以通过加入命令行参数来达到像B脚本传数据的需求。具体请去google:php cli 命令行参数。但是注意php比不了那些底层语言,不同进程间无法互相访问,因为它们的内存不共享,php没有像"令牌"那种东西。所以不能直接通过A脚本运行的内存去访问B脚本所运行的内存。 如果数据量很少,你可以直接通过http或命令行参数传给B。如果数据量比较大,你可以通过第三方媒体传给B。比如当A运行后,可以先把数据存储到文件里或数据库,同时通知B可以去文件或数据库去取数据了。 电子商务网站尺码必选项程序如何写? php 防注入 我要把xml数据导入mysql,这样的php怎么写啊。有大虾告诉我吗 如何配置IIS,让Shtml文件能够包含PHP文件,并输出 数组处理 ,高手帮下忙 关于Smarty 的问题 秀下我的AJAX留言本 Call to undefined function: mysql_connect()是怎么回事 php 的设置问题!! 谁帮我看一下下面的程式到底哪儿出了问题?谢谢! 请问大家这个功能是如何实现的? 求 PHP常见的设计模式;并简明说一下作用,及使用举例
/**
* 函数 tenor
* 功能 启动一个url,但不等待返回
* 参数 $page,待执行的页面程序
* 返回 无
**/
if(! function_exists('tenor')):
function tenor($page) {
$host = $_SERVER["HTTP_HOST"];
$fp = fsockopen($host, 80, $errno, $errmsg);
if(!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs($fp,"GET /$page HTTP/1.0\nHost: $host\n\n");
fclose($fp);
}
}
endif;
不过你说的这个需求,用不用cli模式都无所谓。其实这只是个异步请求而已。
你说的A脚本在执行过程中给B脚本传输数据。其实可以使用http协议,然后POST或者GET参数来达到传数据的目的。5楼给你的那个函数,其实就是放在A脚本中用来通过HTTP协议请求B脚本的一个函数。你可以在B文件中直接使用$HTTP_GET_VARS或$HTTP_POST_VARS来得到A脚本传过去的数据。另外还可以使用CURL库来实现这种模拟http请求。
如果数据量比较大,你可以通过第三方媒体传给B。比如当A运行后,可以先把数据存储到文件里或数据库,同时通知B可以去文件或数据库去取数据了。