escapeshellcmd

(PHP 3, PHP 4, PHP 5)

escapeshellcmd -- シェルのメタ文字をエスケープする

説明

string escapeshellcmd ( string command )

escapeshellcmd() は、文字列中においてシェルコマンドを だまして勝手なコマンドを実行する可能性がある文字をエスケープします。 この関数は、ユーザに入力されたデータを関数 exec() または system() または、 バックティック演算子 に渡す前に全てエスケープを行う場合に使用するべきです。

#&;`|*?~<>^()[]{}$\ \x0A および \xFF については、その文字の前にバックスラッシュが 追加されます。 ' および " は、対になっていない場合にのみエスケープされます。Windows では、 これらの文字に加えて % がスペースに置き換えられます。

パラメータ

command

エスケープされるコマンド

返り値

エスケープされた文字列

例 1. escapeshellcmd() の例

<?php
$e
= escapeshellcmd ( $userinput );

// ここでは $e がスペースを含んでいても関係ない
system ( "echo $e" );
$f = escapeshellcmd ( $filename );

// ここでは気を遣い、クォートを使用する
system ( "touch \" /tmp/$f \" ; ls -l \" /tmp/$f \" " );
?>