0

私はexec do a curlを使用しています。問題は、これの両方です:

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 に答える