在我看到的是用來從PHP捲曲連接的例子,它有這樣一行:CURLOPT_URL {}個字符
curl_setopt($ch, CURLOPT_URL, "{$url}");
看來實際的工作,但我不明白爲什麼他們表現出包在寬闊的大括號中的網址。這對CURL來說有什麼神奇的作用嗎?
在我看到的是用來從PHP捲曲連接的例子,它有這樣一行:CURLOPT_URL {}個字符
curl_setopt($ch, CURLOPT_URL, "{$url}");
看來實際的工作,但我不明白爲什麼他們表現出包在寬闊的大括號中的網址。這對CURL來說有什麼神奇的作用嗎?
"{$url}"
完全等同於(string)$url
。請參閱:PHP: Strings - Manual
$url
的值類型不是字符串,則將其轉換爲字符串。$url
值類型總是串,它們的代碼是冗長或無義。 "{$url}"
爲$url
。所有你需要的是
curl_setopt($ch, CURLOPT_URL, "$url");
你有{$url}
,但PHP只是取代了$url
,所以括號是各地的URL。
祝你好運!
更新:
來自卷邊文檔和多SO問題:
-g/--globoff
This option switches off the "URL globbing parser". When you set this option, you can
specify URLs that contain the letters {}[] without having them being interpreted by curl
itself. Note that these letters are not normal legal URL contents but they should be
encoded according to the URI standard.
的libcurl不解釋的花括號所有,這是由PHP本身的字符串傳遞給前完成libcurl的。
你可以很容易地看到自己,如果你嘗試使用curl使用這樣的命令行:
$ curl -g '{http://example.com/}'
curl: (1) Protocol "{http" not supported or disabled in libcurl
使用-g關掉通配符,因爲通配符的命令行工具使用,否則將改變測試它將工作。還是那句話:在這裏對方的回答中也提到了通配被執行並由命令行工具僅所以PHP /捲曲有沒有這樣的支持提供。這不是你在PHP程序中看到的。
是的,但不回答這個問題。捲曲解釋{}是做什麼的? – Gargoyle
@Gargoyle這是否有幫助?讓我知道,謝謝! – FelisPhasma