0

我正在使用 exec 做一个卷曲。问题是这两个:

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

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

给我一个错误,因为“term”参数中没有合适的字符串。如果我只是去https://site.com/?term=last day&x=1 它可以正常工作,但显然 %20 并没有在其末尾转换为空格。

我认为在 curl 中将空格放入 URL 是有问题的。正确执行此操作的最简单方法是什么?

4

1 回答 1

0

您需要使用escapeshellarg()

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

exec()在内部启动一个外壳,如果您没有正确转义字符,外壳可能会像&字符串中那样扩展元字符。

于 2013-10-29T23:09:14.577 回答