1

「file_get_contents」と「cURL」に問題があります。私がこれを作るとき:

$myFile = 'http://example.com/asset_compress/assets/get/bbb.js?file%5B0%5D=myfile.js';
$a=file_get_contents( $myFile );

次のエラーが表示されます。

Warning (2): file_get_contents
(http://example.com/asset_compress/assets/get/bbb.js?file%5B0%5D=myfile.js)
 [function.file-get-contents]: failed to open stream: 
    HTTP request failed! HTTP/1.0 404 Not Found
   [APP/Controller/MyController.php, line 1373]

次に、次のようにCURLを試しました:

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $myFile);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_USERAGENT, $this->userAgent);
curl_setopt($curl_handle, CURLOPT_VERBOSE, true);
curl_setopt($curl_handle, CURLOPT_AUTOREFERER, true);
$a = curl_exec($curl);
curl_close($curl);

そして、私はこのエラーを受け取ります:

404 Not Found: The resource requested could not be found on this server!

しかしhttp://example.com/asset_compress/assets/get/bbb.js?file%5B0%5D=myfile.js、ブラウザのアドレス バーに書き込むと、ファイルが完全に取得されます。ブラウザのヘッダーは次のようになります。

Request URL:http://example.com/asset_compress/assets/get/bbb.js?file%5B0%5D=myfile.js
Request Method:GET
Status Code:200 OK

Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:tr,en-US;q=0.8,en;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Host:example.com
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.28 Safari/537.31

Query String Parameters
file[0]:myfile.js

Response Headers
Connection:close
Content-Length:15911
Content-Type:application/javascript; charset=UTF-8
Date:Fri, 29 Mar 2013 20:33:43 GMT
Server:Apache
X-Powered-By:PleskLin

私は file_get_contents を疑っていましたが、これを作成すると、完全に出力されます。

$d1 = file_get_contents("http://www.yahoo.com");
print_r($d1);

cURL を試すと、404 エラーが発生します。ブラウザのリクエストから 200 を取得しているにもかかわらず、404 を取得する理由をさらに診断するにはどうすればよいですか。

4

1 に答える 1

0

これはローカル コンピューターでホストされていますか? それともどこ?私のホストが私のリクエストをブロックしているISPであると判断したという同様の問題がありました.

于 2013-03-29T21:59:13.790 に答える