本帖最后由 php_aga 于 2014-07-04 15:42:52 编辑

解决方案 »

  1.   

    $fp = fsockopen('localhost', 80, $errno, $errstr, 5); 
    if(!$fp) { 
      echo "$errstr ($errno)<br />\n"; 
    }else {
      fputs($fp,"GET /1.php HTTP/1.0\r\nHost: localhost\r\nConnection: Close\r\n\r\n");
      while (!feof($fp)) {
        echo fgets($fp, 128);
      }
      fclose($fp);
    }
      

  2.   

    在本地测试的时候,其他电脑访问我这台电脑,用ip的方式可以正常执行,即假设我测试ip为192.168.10.60,
    其他电脑使用http://192.168.10.60/write.php可以正常;
    但把程序放到服务器上去,服务器ip假设为192.168.10.3,
    运行却无法执行,需要把
    连接方式变成192.168.10.3,然后fputs的时候,要写绝对路径才可以……这是啥情况?
      

  3.   

    你放到192.168.10.3
    就不是localhost了,当然要用绝对ip访问,有什么问题?
      

  4.   

    两点不正常
    1、以我本机为测试主机时,其他机器访问我本机,在使用localhost的时候可以正常运行;而把程序放到服务器时,我本机访问服务器就不行;
    2、我说的写绝对路径是不是指fsocketopen建立链接时写,而是譬如当程序是放在web目录下的ca/ma目录下时,下面的
    fwrite的路径要写192.168.10.3/ca/ma/1.php,即便我write程序与1.php程序是放置在同一目录下也需要这样。
    但同样的这个现象我放在本地时,用其他电脑访问本地却正常。本地是win系统,服务器是linux系统,然道是因为OS的关系?
      

  5.   

    1、程序是在你的机器上运行的,所以用 localhost 能访问到是正常的,用你机器的 ip 能访问到也是正常的
    2、当程序搬迁至服务器上时,按理说用 localhost 也是能访问到的,但由于服务器的特殊性可能没有做 127.0.0.1 到 localhost 的映射,那么就访问不到了。