2010-05-21 157 views
1

,爲什麼我沒有得到有關的file_get_contents($ myurl)回報,但我得到的輸出wget的file_get_contents()沒有返回?

更新:

我使用curl得到回報頭和結果和發現的是,它是在頭替代在身體

HTTP/1.1 200 Document follows 
Transfer-Encoding: chunked 
Content-type: text/plain 
Server: XMS (724Solutions HTA XSAM_30_M2_B020 20070803.172831) 
Date: Fri, 21 May 2010 10:48:31 GMT 
Accept-Ranges: bytes 

HTTP/1.1 404 ChargedPartyNotAvailable 
Transfer-Encoding: chunked 
Content-type: text/plain 
Server: XMS (724Solutions HTA XSAM_30_M2_B020 20070803.172831) 
Date: Fri, 21 May 2010 10:34:13 GMT 
Accept-Ranges: bytes 

我怎樣才能提取出「200 Document Follow」和「404 ChargedPartyNotAvailable」?

+1

請顯示一些代碼,並更詳細地解釋你在做什麼。 – 2010-05-21 09:26:45

回答

5

您是否已在您的php配置中啓用allow_url_fopen

但是,我希望你會得到一個警告,如果沒有 - 你有錯誤/警告顯示?您可以暫時在腳本頂部添加:

error_reporting(E_ALL); 
ini_set('display_errors', true); 

然後您可能會看到爲什麼file_get_contents()不起作用。

編輯

你可能只是能夠使用get_headers()如果你只是對標題感興趣。

+0

+1爲allow_url_fopen和error_reporting建議(雖然我只會記錄錯誤:p)。 – wimvds 2010-05-21 09:39:32

+0

配置沒問題。它似乎是結果出現在標題不在正文 – conandor 2010-05-21 11:26:36

+0

@conandor:基於您的編輯更新的答案 – 2010-05-21 12:50:51

3

您可以使用PHP捲曲包來獲取URL的內容

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$myUrl); 
$result = curl_exec($ch); 
curl_close($ch); 

或者,如果你希望只使用的file_get_contents,請檢查您是否正確配置的php.ini

http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

由於(http://php.net/manual/en/function.file-get-contents.php

URL可以用作fi如果已啓用打開包裝 ,則使用 這個函數。有關如何指定 文件名的更多詳細信息,請參閱fopen() 。

+0

+1捲曲替代解決方案 – wimvds 2010-05-21 09:40:02

+0

PHP配置沒問題。它似乎只出現在頭部而不是正文 – conandor 2010-05-21 11:40:55

+0

對於那些想要使用變量'$ result'的用戶,首先在'$ result = curl_exec($ ch)'之前加上'curl_setopt($ ch,CURLOPT_RETURNTRANSFER,true);'。因爲它是這樣的,變量是無用的。但對於短捲曲仍然是+1。 – 2017-01-04 08:52:50

0

你可以嘗試:

$contents = implode('', file($myurl)); 

我經常用它。