2016-06-14 8 views
1
curl -v 'something.com:12684/CAB/keyfile?r=ORE_0&t=VOD&p=1' 

なし400不正な要求を返す200を返しますが、カールは引用符

curl -v something.com:12684/CAB/keyfile?r=ORE_0&t=VOD&p=1 

を使用すると、引用符の事項を行うなぜ400を返しますか?

+2

1)シェルの仕組みです。 2)あなたはescapeshellarg()を使うことができ、PHPはあなたのためにそれを行います3)あなたはコマンドラインカールをとにかく必要とせず、PHPにはカール関数が組み込まれています –

答えて

3

あなたのURLには、シェルが特別なものとして認識する文字が含まれています。ほとんどの場合、&は、コマンドをバックグラウンドに置くUNIX-ishシェルへのシグナルです。最後の二つは、有効なシェル構造であるため、あなたが任意のシェルエラー出力を見ていない

curl -v something.com:12684/CAB/keyfile=?r=ORE_0 
t=VOD 
p=1 

:だから、効果的に3つのコマンドを実行しています。

常にあなたの議論を引用してください。 PHPの場合は、escapeshellargを使用してください。さらにcurlビルトインやサードパーティのライブラリGuzzleなどを使用してください。