本帖最后由 jiangchuan2009 于 2011-04-28 10:45:36 编辑

解决方案 »

  1.   

    根据http协议的返回码(web服务器死到了,通常都会返回200), 还有就是根据zz的输入内容
    你这个需求应该有别的解决方法。你详细说下需求!
    xx.php文件如下:
    <?php
            $ret = get_url_content("http://local.com/zz.php");
            if($ret['code']!=200 || $ret['date']!="1"){
                    echo "error";
             }
    function get_url_content($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 150);
        $data      = curl_exec($ch);
        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        return array(
         "data"=>trim($data),
         "code"=>$http_code
         );
    }
      

  2.   

    每次zz。php执行的时候,记录一个日志,比如5分钟记录一下啊pp.php监控这个日志就好了,距离上次记录日志超过5分钟,就启动zz。php
      

  3.   

    显然你的这几个 php 程序不是在 web 方式下工作的
    参看 socket 函数集,来完成其间的通讯
      

  4.   

    回复1楼:
     是这样的,我用httpclient来抓取数据,抓取程序没有问题,可是有时候程序在打开页面的时候中止,卡主了,我已经设置了超时时间,可是不管用,我想用进程间通信的方式来解决,用一个程序专门控制超时时间,也不知可以否?
      

  5.   

        进程间通信?WINDOWS下PHP没有多进程这个概念吧!应该都是单进程的。而且进程间也无法直接通信!都是用库函数(socket,fsockopen,curl等)来模拟这种操作!变相达到各执行文件间的通信!
      

  6.   

       1#的代码的意思是正常执行一个HTTP请求得到的结果都是HTTP /200 OK。通过这个来判断文件是否正常执行完毕,如果不存在或意外终止,代码应该是其他的。也就是显示ERROR!难道楼主还需要更进一步判断各种意外情况?
       或者楼主可以用try{}catch(exception $e){}来捕获错误或以外终止试试,然后再把该信息传递到另一个执行文件,不知道这种思路可否!
      

  7.   

    这种事好象只有linux下可以解决!