この記事では、主に php の str_replace 置換の脆弱性の分析を紹介します。これは、必要な友人に参照してもらうために共有します。
定義と使用法##。 #str_replace() 関数は、文字列を使用して文字列内の他の文字を置き換えます。
構文
str_replace(find,replace,string,count)パラメータの説明
find 必須。検索する値を指定します。
交換が必要です。 find の値を置き換える値を指定します。
文字列が必要です。検索する文字列を指定します。
count オプション。置換の数をカウントする変数。
ヒントと注意事項 注: この関数では大文字と小文字が区別されます。大文字と小文字を区別しない検索を実行するには、str_ireplace() を使用してください。
注: この関数はバイナリ セーフです。
例 1
<?php echo str_replace("world","John","Hello world!"); ?>
Hello John!
例 2
この例では、str_replace を示します。配列変数とカウント変数を使用した () 関数:
<?php $arr = array("blue","red","green","yellow"); print_r(str_replace("red","pink",$arr,$i)); echo "Replacements: $i"; ?>
Array ( [0] => blue [1] => pink [2] => green [3] => yellow ) Replacements: 1
例 3
<?php $find = array("Hello","world"); $replace = array("B"); $arr = array("Hello","world","!"); print_r(str_replace($find,$replace,$arr)); ?>
Array ( [0] => B [1] => [2] => ! )
<?php $arr1 = Array( 'http://img.jb51.net/img/offer/29/24/70/20/29247020', 'http://img.jb51.net/img/offer/29/24/70/20/29247020-1', 'http://img.jb51.net/img/offer/29/24/70/20/29247020-2' ); $arr2 = Array( 'http://localhost/root/ups/af48056fc4.jpg', 'http://localhost/root/ups/cf33240aa3.jpg', 'http://localhost/root/ups/c30e40419b.jpg' ); $data = ' <img src="http://img.jb51.net/img/offer/29/24/70/20/29247020"/> <img src="http://img.jb51.net/img/offer/29/24/70/20/29247020-1"/> <img src="http://img.jb51.net/img/offer/29/24/70/20/29247020-2"/>'; $data = str_replace($arr1,$arr2,$data); var_dump($data); ?>
function strrplace($arr1,$arr2,$data){ if(is_array($arr1)) { foreach($arr1 as $key => $value) { $data = str_replace_once($value, $arr2[$key], $data); } } return $data; } function str_replace_once($needle, $replace, $data) //替换第一次 { $pos = strpos($data, $needle); if ($pos === false) { return $data; } return substr_replace($data, $replace, $pos, strlen($needle)); }
PHP の filter_var() 関数と Filter 関数の分析
以上がPHPのstr_replace置換脆弱性の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。