ホームページ  >  記事  >  バックエンド開発  >  php str_replace_PHP チュートリアルの置き換えの脆弱性

php str_replace_PHP チュートリアルの置き換えの脆弱性

WBOY
WBOYオリジナル
2016-07-21 15:53:461039ブラウズ

定義と使用法
str_replace() 関数は、文字列を使用して文字列内の他の文字を置き換えます。

構文
str_replace(find,replace,string,count)

パラメータの説明
find 必須。検索する値を指定します。
交換が必要です。 find の値を置き換える値を指定します。
文字列が必要です。検索する文字列を指定します。
カウントはオプションです。置換の数をカウントする変数。

ヒントと注意事項
注: この関数では大文字と小文字が区別されます。大文字と小文字を区別しない検索を実行するには、str_ireplace() を使用してください。

注: この関数はバイナリセーフです。

例 1

コードをコピーします コードは次のとおりです:

echo str_replace("world","John","Hello world!")
?> ;

出力:

こんにちは、ジョン!

例 2
この例では、配列と count 変数を使用した str_replace() 関数を示します:
コードをコピーします

< ?php
$arr = array("blue","re​​d","green"," yellow");
print_r("red","pink",$arr,$i) ));
echo "置換: $i
?>
出力:
配列
(
[0] => 青
[1] => 緑
[3] => 黄色
)
置換: 1


例 3

コードをコピー コードは次のとおりです:
$find = array("Hello","world") ;
$replace = array ("B");
$arr = array("Hello","world","!");
print_r($find,$replace,$arr); ;


输出:

ray

[0] =&gt; b
[1] =&gt;
[2] =&gt;! = 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 = '


';
$data = str_replace($arr1,$arr2,$data);
var_dump($data);
?>

代替後の結果:


string(169) ""str_replace 函数的大概是这样: str_replace( $search、$replace、$input[,&$count])、比如在对一文字列置換操作、$input就是源文字列(データソースと呼ばれます)。 これは合理的ではありません。なぜなら、データ ソースが 3 位に配置されているため、str_pos、strtok、str_repeat などの関数数都はデータ ソースを 1 位に配置しているからです。

解決法:
function strrplace($arr1,$arr2,$data){
if(is_array($arr1) )) {
foreach($arr1 as $key => $value) {
$data = str_replace_once($value, $arr2[$key], $data);
} }
return $data;
}
関数str_replace_once($needle, $replace, $data) //置換第一次
{
$pos = strpos($data, $needle);
if ($pos === false) {
return $data; 
}
return substr_replace($data, $replace, $pos, strlen($needle));




http://www.bkjia.com/PHPjc/318675.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/318675.html

定義および使用法 str_replace() 関数では、一連の置換文字列内のいくつかの文字が使用されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。