2016-07-30 25 views
0

escapeshellcmd()はシェルコマンドに特殊文字を渡したいと思います。 どのようにそれらが通過するようにそれらをマスクするのですか?php:escapeshellcmd()が特殊文字を削除するのを防ぐ

例:

<?php 
$specialchars='I would like to print a µ'; 
$escaped_specialchar=escapeshellcmd($specialchars); 
echo $escaped_specialchar; 
?> 

答えて

1

あなたが最初にあなたが表示しても大丈夫です特殊文字を定義するホワイトリストを作成することができます。また、文字を置き換えることができる文字列をいくつか設定します。

次に、コマンドの文字を文字列に置き換えます。あなたのコマンドをエスケープする。

文字列を置換することで、再び特殊文字を切り替えます。このよう

$allowedCharakters = array(
    'µ' => 'microUThingie', 
); 

$specialchars='I would like to print a µ'; 

foreach ($allowedCharakters as $key => $value) { 
    $specialchars = str_replace($key, $value, $specialchars); 
} 

$escaped_specialchar=escapeshellcmd($specialchars); 

foreach ($allowedCharakters as $key => $value) { 
    $escaped_specialchar = str_replace($value, $key, $specialchars); 
} 
+0

華麗な、ありがとう – Heliosh

関連する問題