当我在
curl
一个
url
时,发现在后端
PHP
环境使用
xdebug
时,只能捕获第一个参数:
curl test.baidu.com/oss/index.php?r=info/data/query&username=xxx&password=xxx
# 在后端url被截断,只能捕获到第一个参数
$_GET: array(1) r: "info/data/query"
这导致了我的认证失败,无法获取正确的数据。
其实这里的原因是在
shell
命令中
&
符号有特殊的含义,而并不只是
url
参数的连接符。因此,我们有两种解决方法:
# 方法一:转义,加上\符
curl test.baidu.com/oss/index.php?r=info/data/query\&username=xxx\&password=xxx
# 方法二:包装,在url外加上引号,用字符串处理