投稿内容は cmd commande line : move "D:\my 1.txt" "D:\my 2.txt"
私のphpコード:
if (!empty($_POST["mechat"])){
$mechat = fopen("mechat","w");
fwrite($mechat,$_POST['mechat']);
}
間違った結果: move \"D:\my 1.txt\" \"D:\my 2.txt\"
PHP 構文では、'\' 文字が予約されています。コマンド内のバックスラッシュの前に別のバックスラッシュを追加することで上書きできます。たとえば、コマンドを作成しますmove "D:\\my 1.txt" "D:\\my 2.txt"
。stripslashes
PHP に組み込まれている関数を使用することもできます。これにより、それらが有効な文字として指定され、PHP はそれらを無視します。
関数を使用して、文字列からエスケープ スラッシュを削除できstripslashes
ます。
fwrite($mechat,stripslashes($_POST['mechat']));
したがって、あなたの場合は、代わりに使用したいと思います。そうすれば、エスケープする必要のある文字がある場合、stripslashes 関数がそれを行い、正常に出力されるはずです。