在我看到用PHP建立卷曲连接的例子中,它有这一行:
curl_setopt($ch, CURLOPT_URL, "{$url}");
它似乎确实有效,但我不明白为什么他们表示将URL包裹在波浪形的大括号中。这对CURL有什么神奇的作用吗?
答案 0 :(得分:0)
你需要的只是
curl_setopt($ch, CURLOPT_URL, "$url");
你有{$url}
,但PHP只是替换了$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.
答案 1 :(得分:0)
libcurl根本没有解释花括号,这是PHP本身在将字符串传递给libcurl之前完成的。
如果您尝试在命令行中使用curl:
,则可以轻松地看到这一点utf8Helper
使用-g关闭globbing,因为命令行工具使用的globbing将以其他方式更改测试,将工作。同样:此处另一个答案中提到的globbing仅由命令行工具实现和提供,因此PHP / CURL没有这样的支持。这不是您在PHP程序中看到的内容。
答案 2 :(得分:0)
"{$url}"
完全等同于(string)$url
。请参阅:PHP: Strings - Manual
$url
的值类型不是字符串,则将其转换为字符串。$url
的值类型始终为字符串,则其代码为详细或无意义。"{$url}"
替换为$url
。