2011-10-09 43 views
0

所有,如何解決HTTP/1.1 400錯誤的請求

我在PHP中使用simple_html_dom訪問網頁通過命令提示符

$page = file_get_html($url, false, $context); 

其中$ url是Web的URL。 如果你的網址是http://abc.com/xyz.html?s=「sometext」 然後我得到了正確的迴應。 但我得到HTTP/1.1 400錯誤的請求,如果URL中有像http://abc.com/xyz.html?s=「一些文本」的get參數的空格。

任何人都可以請幫助我如何解決這個問題。

在此先感謝。

+0

您是否試圖將空白編碼爲%20? http://abc.com/xyz.html?s=some%20text 服務器可以根據您的要求自由回答任何問題,因此只有服務器製造商才能正確回答您的問題。另外,我從來沒有見過用引號括起來的URL參數,這是一種罕見的習慣用法。 – lvella

回答

2

您需要編碼參數:如果你生成URL自己

$text = urlencode('some text'); 
$url = "http://abc.com/xyz.html?s=$text"; 
$page = file_get_html($url, false, $context); 
+0

這將編碼一切,把它變成'http%3A%2F%2F ...',這是不會工作 –

+0

哦,我的壞。只需在s參數上使用'urlencode':) – fivedigit

+0

修復了代碼,使其正常工作。 – fivedigit

0

,你必須url_encode查詢值:

$url = 'http://example.com/xyz.html?s=' . urlencode('some text'); 

which'll給你

http://example.com/xyz.html?s=some+text 
            ^---spaces must be + in urls. 
+0

非常感謝。它爲我工作:) – user519846