2014-08-31 52 views
1

我這裏有一個鏈接http://www.example.com/Movies.aspx?movname=Raja NatwarlalHTTP/1.1 400的file_get_contents

這裏壞請求是我的代碼

file_get_contents($link, false, $context); 

它給我這個錯誤

failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request 

我也試過這個代碼

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $Url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$output = curl_exec($ch); 
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get the code of request 
curl_close($ch); 

它給我$ httpCode = 400

+0

首先,可能值得嘗試在URL中空白地適當地使用http轉義,其次很可能是服務器拒絕該請求,並確實發送錯誤400。 – arkascha 2014-08-31 11:10:53

+0

我也試過urlencode()但沒有運氣 – user3244721 2014-08-31 11:13:20

+0

在整個url上使用'urlencode()'沒有任何意義。這不是我所建議的。 – arkascha 2014-08-31 11:14:13

回答

2

您發佈的URL在技術上無效。如果你輸入這樣一個URL,瀏覽器會處理這個問題,但是在技術層面上你必須自己處理這些細節。

在這種情況下,urls請求參數中有一個空白。這樣的字符在URL中無效。因此你必須逃避它。與這些變體嘗試:

請注意,你不能簡單地用一個函數像urlencode()處理整個URL。這也可以避免像斜線之類的東西。該功能旨在轉義字符串,以便它可以用作中的單個令牌的URL。