我正在使用PHP下载favicons并且我花了一段时间进行故障排除,之后我发现curl_exec
似乎适用于某些网站而file_get_contents
没有。
例如,这里是来自http://www.hellmanns.com/favicon.ico
的file_get_contents
警告:file_get_contents(http://hellmanns.com/favicon.ico):失败 打开流:HTTP请求失败! HTTP / 1.0 403禁止进入 /home/arcmarks/public_html/arcmarks/source/class.FaviconFinder.php on 第44行
curl_exec
H( e?Câ¬^ÏÉÌŒ$ B#(ÌlcYfƒy9C¥D;üès¨H8§¥§<&amp;5é¨QÛœJ©O5Öžfå§LíáÛÜ߸nÜ®Œa~†} ... l “'±“○}þþþ¥FHòòÞïïï/ A±mžç¿〜L“ - ,y¾i'öá̳²¶£A%«§¬UIU©?“I²〜AH *®^ÖáμÅÅ™ØezU[¢&LT;4¡- 5; /ïÀöæØaéìÐ̆CN ,; U @N㽧õðî‰Õ¨î¹¹k_jÖšmîÙÌáÜÝ[æ™-ì·D¡-swE <#õ¹“$ 0”6&amp;ï²1Ú|Žž#“+ $§HR¢@ 3€,3 @ @ÿÿþÿÿÿÿþÿÿP:H€ ô¯VüáBâ™?“Ĵ W~±|†ôòóaQŸE7Ç| @ F2?G2?åóãäå¸~Q P,千电子伏(CUD)#lUH4mkr $ GJ [ahVf9&安培; 2SE / @ ZLwPYiF0qOG Y'GT;?!QbJx + cIMDzW - ]。*'T5B;&LT; ^%T6 _XsR =`:n“A7831o Nÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
答案 0 :(得分:0)
403
响应错误表示服务器拒绝了file_get_contents发出的请求。
Curl和file_get_contents不会发出相同的HTTP请求。
至少CURL将使用不同的用户代理标头。
通常,CURL比使用file_get_contents加载远程文件更优越,更快。
答案 1 :(得分:0)
curl_exec基于并且在许多不同语言中使用的整个项目请参见此处:
Why doesn't file_get_contents() appear to have the same access as curl_exec()?
因此它有更多的支持。