dongzhao4036
dongzhao4036
2015-02-05 22:12

为什么file_get_contents()似乎与curl_exec()具有相同的访问权限?

已采纳

I am downloading favicons using PHP and I spent a while troubleshooting before I noticed that curl_exec appears to work for some sites while file_get_contents does not.

For example here is the response from http://www.hellmanns.com/favicon.ico

file_get_contents

Warning: file_get_contents(http://hellmanns.com/favicon.ico): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /home/arcmarks/public_html/arcmarks/source/class.FaviconFinder.php on line 44

curl_exec

h( e?Câ¬^ÏÉÌŒ$ B#(ÌlcYfƒy9C¥D;üès¨H8§¥§‹&5é¨QÛœJ©O5Öžfå§LíáÛÜ߸n Ü®Œa~ †}…l “‘±“o}þþþ¥FHòòÞïïï/Á±mžç¿~L"-‚y¾i'öá̳²¶£A%«§¬?ùíÜ©„i­²~Âh*®^?ÖáµÅÅ™ØezU[¢<4¡-5;/ïÀöæØaéìÐ̆cN ,;U@N㽧õðî‰Õ¨îѹk_jÖšmîÙÌáÜÝ[æ™-ì·D¡?-s­wE‹# õ¹„$0”6&ï²1Ú¦Žž#”+$§HR¢@3€,3Â@üÿÿþÿÿP:H€ô¯VüáBâ™?„j W~±¦ª†ôòóaQ ŸE7Ç|@F2?G2?åóãäå¸~Q p,KEv(Cud).#lUH4mkr$gj[ahVf9&2Se/@ZLwPYiF0qOG?y>QbJx+cIMDzW!-]*'t5B;<^%T6 _XsR=` :n"A7831o N ÿÿÿÿÿÿÿÿ€Àÿÿÿÿÿÿÿÿ

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • doushi1996 doushi1996 5年前

    curl_exec is based upon and entire project that is used in many different languages see here:

    Why doesn't file_get_contents() appear to have the same access as curl_exec()?

    Hence it has much more support.

    点赞 评论 复制链接分享
  • doupingyun73833 doupingyun73833 6年前

    The 403response error indicates that the server rejected the request made by file_get_contents.

    Curl and file_get_contents do not make the same HTTP request.

    At a minimum CURL will use a different user-agent Header.

    In general CURL is superior and faster than using file_get_contents for loading remote files.

    点赞 评论 复制链接分享

为你推荐