3

まあ、ヘッダーはそれをすべて言います。PHPで、 escapeshellarg()
を逆にするにはどうすればよいですか?より正確に言うと、それを逆にする組み込み関数(ある場合)は何ですか。

4

2 に答える 2

5

最も徹底的なルートは、escapeshellarg() が何をするのかを正確に見つけ出し、反対のことをすることです。Linux 環境では、単一引用符を処理しているように見えます。Windows 環境では、もう少し多くのことを行っています。逆関数もそれを考慮に入れる必要があります。

組み込み関数について: 短い答えは「ありません」です。長い答えは次のとおりです。エスケープされたシェル引数はPHPによって解析されることを意図したものではないため(そもそもエスケープする必要があるのはなぜですか?)、シェル引数を作成してPHPへのパッチとして提出したことはありません。引数を CLI PHP アプリケーションに渡す場合、アンエスケープする必要はありません。これは、インタープリターによって既に行われているためです。

于 2012-05-29T14:15:21.033 に答える
0

ユースケース:
コマンドを作成するとき、すべての引数を適切にエスケープする必要があります。ただし、PSそのコマンドが実行されているかどうかを調べるために使用すると、引用符が削除されます。だから比較は難しい。チェックする唯一のプログラムがphp保存によって開始されたものであるPID場合は問題ありませんが、他の方法で開始されたプロセスを考慮に入れる必要がある場合は、より困難です

于 2014-03-29T15:27:47.950 に答える