2013-10-29 39 views
0

我正在使用exec做一個捲曲。問題是,無論是這樣的:如何在curl中使用php的exec將空格放入URL

exec("curl --insecure https://site.com/?term=last day&x=1"); 

exec("curl --insecure https://site.com/?term=last%20day&x=1"); 

給我一個錯誤,因爲有沒有在「術語」參數適當的字符串。如果我只是去https://site.com/?term=last天& x = 1它可以很好地工作,但顯然%20不會翻譯爲它們末端的空間。

我認爲在curl中將空格放入URL中存在問題。做這件事最簡單的方法是什麼?

+0

你爲什麼不使用[cURL functions](http://php.net/manual/en/ref.curl.php)? – AlexP

+2

嘗試使用'+'代替 – Musa

+0

您可以在瀏覽器中執行此操作,因爲瀏覽器會在背景*中正確編碼*。 cURL不會做這種手工操作。另外,你不能在這樣的命令參數中有空格。 – Sammitch

回答

0

您需要使用escapeshellarg()

exec('curl --insecure ' . escapeshellarg($url)); 

exec()內部啓動一個外殼,如果你無法逃脫字符正確的外殼可能會擴展字符元,如字符串中&