請教個fopensocket的問題

來源:互聯網
上載者:User
本地WAPM環境,php.ini有開啟allow_url_fopen = On
write.php
$fp = fsockopen('localhost',80,&$errno,&$errstr,5);
if(!$fp)
{
echo "$errstr ($errno)
\n";
}
else
{
fputs($fp,"GET / HTTP/1.0\nHost: http://localhost/1.php");
fclose($fp);
}
?>
在localhost根目錄下存在1.php,但測試回合write.php後,
發現1.php並沒有被執行,單獨執行1.php是可以運行
請問為什嗎?
試過把http://localhsot/1.php改為1.php也不行;過程中沒提示無法建立套連結


回複討論(解決方案)

$fp = fsockopen('localhost', 80, $errno, $errstr, 5); if(!$fp) {   echo "$errstr ($errno)
\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);}

$fp = fsockopen('localhost', 80, $errno, $errstr, 5); if(!$fp) {   echo "$errstr ($errno)
\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);}


在本地測試的時候,其他電腦訪問我這台電腦,用ip的方式可以正常執行,即假設我測試ip為192.168.10.60,
其他電腦使用http://192.168.10.60/write.php可以正常;
但把程式放到伺服器上去,伺服器ip假設為192.168.10.3,
運行卻無法執行,需要把
串連方式變成192.168.10.3,然後fputs的時候,要寫絕對路徑才可以……這是啥情況?

這不是很正常嗎?

你放到192.168.10.3
就不是localhost了,當然要用絕對ip訪問,有什麼問題?

這不是很正常嗎?


兩點不正常
1、以我本機為測試主機時,其他機器訪問我本機,在使用localhost的時候可以正常運行;而把程式放到伺服器時,我本機訪問伺服器就不行;
2、我說的寫絕對路徑是不是指fsocketopen建立連結時寫,而是譬如當程式是放在web目錄下的ca/ma目錄下時,下面的
fwrite的路徑要寫192.168.10.3/ca/ma/1.php,即便我write程式與1.php程式是放置在同一目錄下也需要這樣。
但同樣的這個現象我放在本地時,用其他電腦訪問本地卻正常。本地是win系統,伺服器是linux系統,然道是因為OS的關係?

1、程式是在你的機器上啟動並執行,所以用 localhost 能訪問到是正常的,用你機器的 ip 能訪問到也是正常的
2、當程式搬遷至伺服器上時,按理說用 localhost 也是能訪問到的,但由於伺服器的特殊性可能沒有做 127.0.0.1 到 localhost 的映射,那麼就訪問不到了。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.