ホームページ >バックエンド開発 >PHPチュートリアル >php有调用脚本后立即返回的函数吗?该怎么处理

php有调用脚本后立即返回的函数吗?该怎么处理

WBOY
WBOYオリジナル
2016-06-13 10:19:40973ブラウズ

php有调用脚本后立即返回的函数吗?
比如有一个php文件a.php,它大概要2分钟才能执行完,有没有一个函数,可以让这个文件执行,不等它执行完呢?

就是只要唤醒a.php让它执行就行,主程序立即返回处理别的事情。

------解决方案--------------------
fsockopen() 函数兴许能解决你的问题
http://qianxunniao.iteye.com/blog/1243602
------解决方案--------------------
test 怎么老吃我的回复?
你也可以用php调用外部命令执行b.php
------解决方案--------------------
给你个函数,在我多个环境中可用。
但不保证在你呢环境中有用

PHP code
/** * 函数 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;<br><font color="#e78608">------解决方案--------------------</font><br>php 是不支持多线程的,更谈不上主线程和子线程了。  不过倒是有办法模拟这个环境,代码如下:<br>do {<br> ?                        $mrc = curl_multi_exec($mh,$active);<br> ?                } while ($mrc == CURLM_CALL_MULTI_PERFORM);<br> ?                while ($active and $mrc == CURLM_OK) {<br> ?                        if (curl_multi_select($mh) != -1) {<br> ?                                do {<br> ?                                        $mrc = curl_multi_exec($mh, $active);<br> ?                                } while ($mrc == CURLM_CALL_MULTI_PERFORM);<br> ?                        }<br> ?                }<br> ?是通过一个不停执行的循环 模拟的,<br><br>这个办法要是不行的话  就用系统的计划任务  定时去执行程序吧~<br><font color="#e78608">------解决方案--------------------</font><br>这种事还是用C吧, php只是为了Web而活的。。<br><br>具体程序架构怎么设计还得明确一下功能描述。<div class="clear">
                 
              
              
        
            </div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。