如果curl擴展名不可用或已被禁用,是否有辦法下載文件?PHP:如果curl擴展名不可用,是否有辦法下載文件?
0
A
回答
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');
4
可以使用得到一個遠程文件的內容:
<?php
$file_content = file_get_contents('http://www.the-site.com/file.txt');
?>
+1
...這隻有在啓用fopen封裝工作。 – 2009-12-17 08:52:59
+0
我可以使用該功能從網站下載圖像嗎? – Sarfraz 2009-12-17 09:44:12
+1
是的,你可以用它下載你喜歡的任何文件。它將獲取瀏覽器會看到的任何內容,並將其作爲字符串返回,這非常簡單。 :-) – 2009-12-17 11:41:24
「Accept-Encoding:gzip,deflate」。如果你確實接受gzip內容,你需要解碼它,或者fread()這樣做? – 2009-12-17 10:04:53
我懷疑你需要發送Accept-Language:de-ch。 – 2009-12-17 11:40:14
讓它像一段時間一樣工作,在任何請求(文件+頁面)上都沒有任何問題,但是糾正了它。 – bisko 2009-12-17 11:52:45