脚本宝典收集整理的这篇文章主要介绍了php – file_get_contents()连接拒绝我自己的网站,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我不知道为什么会这样.为什么服务器会主动拒绝此连接?我怎么能阻止它?
谢谢
编辑:
这里参考我的(cURL)代码:
$ch = curl_init(); curl_setopt($ch,CURLOPT_URL,'http://www.mydomain.co.uk'); curl_setopt($ch,CURLOPT_HEADER,true); curl_setopt($ch,CURLOPT_RETURNtransfer,1); curl_setopt($ch,CURLOPT_REFERER,''); curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2'); curl_setopt($ch,CURLOPT_HTTPHEADER,array('Host: www.mydomain.co.uk')); $rawHTML = curl_exec($ch); $err = curl_error($ch); curl_close($ch); PRint $err; print 'HTML: ' . $rawHTML;
telnet localhost 80
或者你选择的操作系统的等价物?并尝试使用localhost而不是服务器的完整ip.只有成功,你才会遇到curl / PHP问题.
编辑:ok,所以使用file_get_contents(“http:// localhost /”);连接到localhost工作.
这意味着您可以通过localhost访问您的站点,但您需要覆盖随请求一起发送的Host:字段.这不是cURL的正常用法,但您可以尝试:
curl_setopt(CURLOPT_HTTPHEADER,array('Host: yourdomain.COM'));
请求URL http://127.0.0.1/.我想知道这是否会被curl理解,但你可以试一试.
编辑^ 2:如果这不能欺骗cURL,只需打开自己的套接字连接并发出自己的请求:
$ip = '127.0.0.1'; $fp = fsockopen($ip,80,$errno,$errstr,5); $result = ''; if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.exampl.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrITe($fp,$out); while (!feof($fp)) { $result .= fgets($fp,128); } fclose($fp); }
(这是来自PHP.net示例的改编)
以上是脚本宝典为你收集整理的php – file_get_contents()连接拒绝我自己的网站全部内容,希望文章能够帮你解决php – file_get_contents()连接拒绝我自己的网站所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。