2

私の問題コード

<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://www.tudou.com/programs/view/qyT7G6gVFSs');
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl , CURLOPT_NOBODY, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);
var_dump($data);

応答は

string(241) "HTTP/1.1 405 Method Not Allowed Server: Tengine/1.4.0 Date: Sat, 01 Dec 2012 15:53:32 GMT Content-Type: text/html;charset=GBK Content-Length: 1085 Connection: appSrv を閉じる: itemview-app4-app_admin Vary: Accept-Encoding Allow: GET "

それから私の正しいコードは

<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://www.tudou.com/programs/view/qyT7G6gVFSs');
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);
var_dump($data);

結果は string(313) "HTTP/1.1 302 Moved Temporarily Server: Tengine/1.4.0 Date: Sat, 01 Dec 2012 16:17:25 GMT Content-Length: 0 Connection: close appSrv: itemview-app5-app_admin Vary : Accept-Encoding プラグマ: キャッシュなし キャッシュ制御: キャッシュなし、ストアなし 有効期限: 1970 年 1 月 1 日 (木) 00:00:00 GMT 場所: http://tv.tudou.com/

"

はい、それはただの CURLOPT_NOBODY です。誰か理由を教えてください。

4

2 に答える 2

1

CURLOPT_NOBODY を指定すると、実際には別のタイプのリクエストが実行されます CURLOPT_NOBODY はまだ本文をダウンロードしますか - 帯域幅を使用し ます カーリング対象のサーバーはこのタイプのリクエストをサポートしていないようです。

于 2012-12-01T16:26:26.717 に答える
0

このようなことをしてみてください:

            //cURL set options
            //cURL options array set
            $options = array(
                CURLOPT_URL => $this->URL,              #set URL address
                CURLOPT_USERAGENT => $this->UserAgent,  #set UserAgent to get right content like a browser
                CURLOPT_RETURNTRANSFER => true,         #redirection result from output to string as curl_exec() result
                CURLOPT_COOKIEFILE => 'cookies.txt',    #set cookie to skip site ads
                CURLOPT_COOKIEJAR => 'cookiesjar.txt',  #set cookie to skip site ads
                CURLOPT_FOLLOWLOCATION => true,         #follow by header location
                CURLOPT_HEADER => true,                 #get header (not head) of site
                CURLOPT_FORBID_REUSE => true,           #close connection, connection is not pooled to reuse
                CURLOPT_FRESH_CONNECT => true,          #force the use of a new connection instead of a cached one
                CURLOPT_SSL_VERIFYPEER => false         #can get protected content SSL
            );
            //set array options to object $curl
            curl_setopt_array($curl, $options);
于 2012-12-01T16:28:34.607 に答える