php有调用脚本后立即返回的函数吗? 比如有一个php文件a.php,它大概要2分钟才能执行完,有没有一个函数,可以让这个文件执行,不等它执行完呢?就是只要唤醒a.php让它执行就行,主程序立即返回处理别的事情。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有什么问题吗?a.php 执行 其他事情在b.php...打开两个页面不就行了... fsockopen() 函数兴许能解决你的问题http://qianxunniao.iteye.com/blog/1243602 test 怎么老吃我的回复?你也可以用php调用外部命令执行b.php 哈哈哈可怜的孩子,我刚还看你的回复在 刷新一下就没了.估计是csdn跟你发的那个地址的网站有过节吧...不知道是不是自动删的. 话说,前段时间无意中发现新版个人主页的个人动态存在BUG(输出的帖子标题都没有将html字符转为实体,估计标题中嵌入js脚本都能运行),PM通知管理员,居然到现在还没有修复(半个月都不止了,这效率真没的说)。。 就是父程序调用一个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; php 是不支持多线程的,更谈不上主线程和子线程了。 不过倒是有办法模拟这个环境,代码如下:do { $mrc = curl_multi_exec($mh,$active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active and $mrc == CURLM_OK) { if (curl_multi_select($mh) != -1) { do { $mrc = curl_multi_exec($mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); } } 是通过一个不停执行的循环 模拟的,这个办法要是不行的话 就用系统的计划任务 定时去执行程序吧~ to xuzuning,谢谢 我2号试试,KO后就给分啦。to yw5201314,我2号试下您的代码,谢谢。to dream1206 我过该方法,但没成功,2号再试试。另,php5中已经支持多线程了,但我不能用,各位可以研究下,好像是select功能族。 这种事还是用C吧, php只是为了Web而活的。。具体程序架构怎么设计还得明确一下功能描述。 xuzuning 的测试可用,但稍作解释:/** * 函数 tenor() * 功能 启动一个url,但不等待返回 * 参数 $page,待执行的页面程序,去掉主机后的路径,如要执行localhost/a/1.php,那么$page应该为/a/1.php,用$host指定被调用页面所在的主机。 * 返回 无 **/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);//可能需要注释掉该行 }}测试通过,谢谢各位的帮助,结贴了。 PHP和Java的兄弟进来看一下,一个URLencode问题 张西周100609求助:CCTV世界杯直播表 Mac osx上面有类似Appserv那样的组合工具包吗? PHP如何实现在线对HTML文件的编辑 PHP中,请问如何将回车键换成<br> 关于PHP中require的问题 asp 设置代理访问远程页面》 数据库初始化父类继承的问题 求一段代码. 问个傻到爆的问题 phpmyadmin打不开的‘简单’问题,困扰我5个多月之后的得到完美解决 基础编程:关于单例模式的问题,大牛进来撸~~~
打开两个页面不就行了...
http://qianxunniao.iteye.com/blog/1243602
你也可以用php调用外部命令执行b.php
哈哈哈可怜的孩子,我刚还看你的回复在 刷新一下就没了.估计是csdn跟你发的那个地址的网站有过节吧...不知道是不是自动删的.
话说,前段时间无意中发现新版个人主页的个人动态存在BUG(输出的帖子标题都没有将html字符转为实体,估计标题中嵌入js脚本都能运行),PM通知管理员,居然到现在还没有修复(半个月都不止了,这效率真没的说)。。
但不保证在你呢环境中有用/**
* 函数 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;
do {
$mrc = curl_multi_exec($mh,$active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active and $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
是通过一个不停执行的循环 模拟的,这个办法要是不行的话 就用系统的计划任务 定时去执行程序吧~
* 函数 tenor()
* 功能 启动一个url,但不等待返回
* 参数 $page,待执行的页面程序,去掉主机后的路径,如要执行localhost/a/1.php,那么$page应该为/a/1.php,用$host指定被调用页面所在的主机。
* 返回 无
**/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);//可能需要注释掉该行
}
}测试通过,谢谢各位的帮助,结贴了。