2013-08-01 67 views
0

我使用卷曲从filestube.com抓取网页内容:卷曲不获取内容

$link = "http://filestube.com/93TtL7UrDSvedJF7rSR1sE"; 
    $options = array( 
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_HEADER   => false, 
    // CURLOPT_FOLLOWLOCATION => true, 
     CURLOPT_ENCODING  => "", 
     CURLOPT_USERAGENT  => "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)", 
     CURLOPT_AUTOREFERER => true, 
     CURLOPT_CONNECTTIMEOUT => 120,  
     CURLOPT_TIMEOUT  => 120, 
     CURLOPT_MAXREDIRS  => 10, 
    ); 

    $ch = curl_init(urlencode($link)); 
    curl_setopt_array($ch, $options); 
    $content = curl_exec($ch); 
    $header = curl_getinfo($ch); 
    curl_close($ch); 
    print_r($header); 
    echo $content; 

但输出是:

Array 
(
    [url] => HTTP://http%3A%2F%2Ffilestube.com%2F93TtL7UrDSvedJF7rSR1sE%3Cbr+%2F%3E 
    [content_type] => 
    [http_code] => 0 
    [header_size] => 0 
    [request_size] => 0 
    [filetime] => -1 
    [ssl_verify_result] => 0 
    [redirect_count] => 0 
    [total_time] => 0 
    [namelookup_time] => 0 
    [connect_time] => 0 
    [pretransfer_time] => 0 
    [size_upload] => 0 
    [size_download] => 0 
    [speed_download] => 0 
    [speed_upload] => 0 
    [download_content_length] => -1 
    [upload_content_length] => -1 
    [starttransfer_time] => 0 
    [redirect_time] => 0 
    [certinfo] => Array 
     (
     ) 

    [redirect_url] => 
) 

而且没有urlencodefile_get_contents呼应400 Bad Request错误。

任何帮助表示赞赏。

更新

当注释掉注释行给出了这样的错误:

Warning: curl_setopt_array() [function.curl-setopt-array]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set 

没有urlencode输出为:

Array 
(
    [url] => http://www.filestube.com/93TtL7UrDSvedJF7rSR1sE<br /> 
    [content_type] => text/html 
    [http_code] => 400 
    [header_size] => 97 
    [request_size] => 181 
    [filetime] => -1 
    [ssl_verify_result] => 0 
    [redirect_count] => 0 
    [total_time] => 0.027514 
    [namelookup_time] => 0.000785 
    [connect_time] => 0.01413 
    [pretransfer_time] => 0.014176 
    [size_upload] => 0 
    [size_download] => 90 
    [speed_download] => 3271 
    [speed_upload] => 0 
    [download_content_length] => -1 
    [upload_content_length] => 0 
    [starttransfer_time] => 0.027489 
    [redirect_time] => 0 
    [certinfo] => Array 
     (
     ) 

    [redirect_url] => 
) 
<html><body><h1>400 Bad request</h1> 
Your browser sent an invalid request. 
</body></html> 
+0

你测试,以确保代码工作,定期,静态网页此设置为true,那它肯定是什么特别的filestube? – zebediah49

+0

在命令行中执行此操作的结果是400'curl -I'http://www.filestube.com/93TtL7UrDSvedJF7rSR1sE
'',在URL末尾删除中断 –

回答

3

你的URL从

http://filestube.com/93TtL7UrDSvedJF7rSR1sE 
重定向

http://www.filestube.com/93TtL7UrDSvedJF7rSR1sE 

与WWW试试吧。

或者通过取消注释它

CURLOPT_FOLLOWLOCATION => true, 
+0

添加'www'不生成任何更改!该行被评论,因为它已被禁用。 – revo

+0

重新注册以启用以下重定向。要查看非www版本是否工作?如果你改变'$ ch = curl_init(urlencode($ link));'到这个'$ ch = curl_init($ link);' –

+0

请参阅我的更新,那么'headers'的输出是什么? – revo