fscok实现异步调用的PHP_PHP应用_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

fscok实现异步调用的PHP

作者:黑客防线网安PHP维护基地 来源:黑客防线网安PHP维护基地 浏览次数:0

本篇关键词:调用实现 脚本
黑客防线网安网讯:    Web 服务器执行一个脚本,可能几毫秒就完成,也可能几分钟都完不成。如果程序执行缓慢,用户可能没有耐心等下去,就关闭浏览器了。     而有的时候,我们更本不关心这些耗时的脚本的执行...

    Web 服务器执行一个脚本可能几毫秒就完成也可能几分钟都完不成如果程序执行缓慢,用户可能没有耐心等下去,就关闭浏览器了
    而有的时候,我们更本不关心这些耗时的脚本的执行结果,但却还要等他执行完返回,才能继续下一步。   
    那么有没有什么办法,只是简单的触发调用这些耗时的脚本然后就继续下一步,让这些耗时的脚本在服务端慢慢执行? 
     
    接下来,我将使用fscokopen来实现这一功能。
    
    PHP是支持socket编程的,就是fsockopen, 在以前做CMS的时候,我也曾经用过它做过smtp发信。
    fscokopen返回一个到远程主机连接的句柄。你可以像使用fopen返回的句柄一样,对她进行写fwrite,读取fgets, fread等操作。
    
    我们的异步PHP,主要想要的效果就是,触发一个PHP脚本,然后立即返回,留它在服务器端慢慢执行。前面我也写过一篇文章讨论过这个问题。

    那么,我们就可以使用fsockopen连接到本地服务器,触发脚本执行,然后立即返回,不等待脚本执行完成。

  function triggerRequest($url, $post_data = array(), $cookie = array())...{
        $method = "GET";  //可以通过POST或者GET传递一些参数给要触发的脚本
        $url_array = parse_url($url); //获取URL信息,以便平凑HTTP HEADER
        $port = isset($url_array[’port’])? $url_array[’port’] : 80; 
      
        $fp = fsockopen($url_array[’host’], $port, $errno, $errstr, 30); 
        if (!$fp) ...{
                return FALSE;
        }
        $getPath = $url_array[’path’] ."?". $url_array[’query’];
        if(!empty($post_data))...{
                $method = "POST";
        }
        $header = $method . " " . $getPath;
        $header .= " HTTP/1.1 ";
        $header .= "Host: ". $url_array[’host’] . " "; //HTTP 1.1 Host域不能省略
        /*

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-13665-1.html
网站维护教程更新时间:2012-03-30 04:38:20  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer