2009-12-17 87 views

回答

2

這工作了。儘管您必須啓用套接字。

function getcontent($server, $file,$port=80) 
{ 
    $cont = ""; 
    $ip = gethostbyname($server); 
    $fp = fsockopen($ip, $port); 
    if (!$fp) 
    { 
     return "Unknown"; 
    } 
    else 
    { 
     $com = "GET $file HTTP/1.1\r\nAccept: */*\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\nHost: $server:$port\r\nConnection: Keep-Alive\r\n\r\n"; 
     fputs($fp, $com); 
     while (!feof($fp)) 
     { 
      $cont .= fread($fp, 500); 
     } 
     fclose($fp); 
     $cont = substr($cont, strpos($cont, "\r\n\r\n") + 4); 
     return $cont; 
    } 
} 

用法:

getcontent('google.com', '/intl/en_ALL/images/logo.gif'); 
+0

「Accept-Encoding:gzip,deflate」。如果你確實接受gzip內容,你需要解碼它,或者fread()這樣做? – 2009-12-17 10:04:53

+0

我懷疑你需要發送Accept-Language:de-ch。 – 2009-12-17 11:40:14

+0

讓它像一段時間一樣工作,在任何請求(文件+頁面)上都沒有任何問題,但是糾正了它。 – bisko 2009-12-17 11:52:45

4

可以使用得到一個遠程文件的內容:

<?php 
    $file_content = file_get_contents('http://www.the-site.com/file.txt'); 
?> 

File_get_contents on PHP.net

+1

...這隻有在啓用fopen封裝工作。 – 2009-12-17 08:52:59

+0

我可以使用該功能從網站下載圖像嗎? – Sarfraz 2009-12-17 09:44:12

+1

是的,你可以用它下載你喜歡的任何文件。它將獲取瀏覽器會看到的任何內容,並將其作爲字符串返回,這非常簡單。 :-) – 2009-12-17 11:41:24