其它网站可以获取到,为什么这个不可以。curl也不行,求解答,谢谢。
1
hqfzone OP 这是DNSPod的IP~
|
2
hqfzone OP 换了学校的VPS以及自己的虚拟机,都有问题~可以获取到httpheader,就是无法获取内容。
|
3
l12ab 2015-03-29 21:47:30 +08:00
123.125.114.144;180.149.132.47
|
4
Puteulanus 2015-03-29 22:13:47 +08:00
file_get_contents curl 楼主看看是不是网的问题? |
5
hqfzone OP @Puteulanus 应该不是网络问题啊,get_headers('http://119.29.29.29/d?dn=baidu.com')可以获取到httpheader,就是file_get_contents不行。
|
6
NewYear 2015-03-29 23:08:09 +08:00
我用file_get_contents获取某大人站的首页做RSS,结果一段时间后被对方服务器B掉了IP……ping都ping不通了。
后来自己请求了下自己网站才发现,坑爹的,这玩意发请求不带user-agent,难怪人家要屏蔽,是我我也屏蔽 |
7
txlty 2015-03-29 23:17:52 +08:00
<?php
$fp = fsockopen("119.29.29.29", 80); fwrite($fp,"GET /d?dn=baidu.com HTTP/1.1\r\n"); fwrite($fp,"Host: 119.29.29.29\r\n"); fwrite($fp,"Connection: Close\r\n\r\n"); for($i=0;$i<6;$i++){$data.=fgets($fp, 128);} preg_match("/Content-Length:.?(\d+)/", $data, $matches); $length = $matches[1]; $result = fgets($fp, $length+1); fclose($fp); echo $result; ?> |
8
xbonline 2015-03-29 23:40:58 +08:00
这是file_get_contents的坑
因为服务器开启了keep-alive file_get_contents默认是不发送connection:close头,服务器以为还有后续http请求,所以继续等待几十秒才close,导致file_get_contents阻塞 解决方案: http://stackoverflow.com/questions/3629504/php-file-get-contents-very-slow-when-using-full-url |
10
bombless 2015-03-29 23:55:10 +08:00
那就是错误的默认参数吧……
|
12
mingyun 2015-04-05 19:50:28 +08:00
擦,我试了也不行
|
13
hqfzone OP @mingyun 用的apache服务器么?不知道楼上测试可以的朋友用的什么……不过 fsockopen 还是可以的。
|
14
hqfzone OP 更正,curl可以~
|