2015-07-28 82 views
1
$data = file_get_contents("http://randomword.setgetgo.com/get.php"); 

var_dump($data); 

發送此獲取請求時我一直得到錯誤,任何人都有一個想法爲什麼?PHP獲取請求返回false

它工作得很好,我寫了一個簡單的PHP腳本,從同一個域託管,可能是這個問題,如果是這樣的話,我該如何去發送一個獲取請求到這個API?

我嘗試使用捲曲以及相同的結果。它適用於我的測試腳本,但不適用於API。

+0

我認爲你需要通過一定的參考變量獲得和API處理數據,如'get.php?some_data = some_value',你可以發佈'get.php'代碼 –

+0

嗯,我不知道也這樣覺得。嘗試通過簡單地瀏覽至瀏覽器中的URL來發送http獲取請求,您將看到它會顯示一個隨機單詞。 (除非我誤解這是如何工作的)。如果可以的話,我會發布get.php代碼,但根據我的說法,它不會發布。 –

+0

對我來說工作正常 – RamRaider

回答

0

正如以上各種評論中所述,最初發布的代碼適用於我,但不適用於OP - 很可能是由於Webhost對各種標準PHP函數的限制。作爲替代,cURL應該能夠檢索內容,除非類似的限制已經被放置在標準捲曲函數上。

$url='http://randomword.setgetgo.com/get.php'; 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'curl-wordfetcher'); 
    $result = curl_exec($ch); 
    if(curl_errno($ch)) echo 'Curl error: ' . curl_error($ch); 
    curl_close($ch); 

    print_r($result); 
+0

我試過上面的cURL代碼。當url設置爲同一服務器上託管的php時,它工作正常(如上面的file_get_contents策略),但是當使用外部託管的php文件作爲url時,將返回以下錯誤:Curl error:Recv failure:Connection reset by peer'我會嘗試聯繫我的虛擬主機,看看這是否是由於他們的限制,並接受你的答案,如果是這樣的話,聽起來像它。 (非常感謝btw!) –

+0

這確實是一個由網絡主機放置的限制。在與他們交談之後,他們已經解除了這個問題。現在就工作,謝謝! –