コードをコピー コードは次のとおりです。
header("Content-type: text/html; charset=utf -8");
function multiple_replace_words($word,$replace,$string,$tmp_match='#a_a#'){
preg_match_all('/'.$word.'/',$ string,$matches); //すべてのキーワードに一致します
$search =explode('/,/',$matches[0]).'/'); // 一致するキーワードがありません
if(empty($matches[0])) return false
//特別な置換設定
$count = count($matches[0]); foreach( $replace as $key=>$val){
if(!isset($matches[0][$key])) unset($replace[$key]); //境界置換
}
//特別な置換配列と一致する配列をマージします
for($i=0;$i$matches[0][$ i] = isset($replace[$i])? $replace[$i] : $matches[0][$i];
$replace = $matches[0]; /置換ループの防止、つまり置換 文字は置換された文字のままですが、一時的に特定の文字に置換されます $tmp_match
$replace = implode(',',$replace); = str_replace($word,$tmp_match,$replace ); //一致する文字の一時置換
$replace =explode(',',$replace);
//置換処理
$string = preg_replace ($search,$replace,$string,1) ; //一度に配列内の 1 文字だけを置換します
$string = str_replace($tmp_match,$word,$string); //一時的に置換された一致を復元します文字
return $string;
}
//例 1
$string = 'aaabaaacaaadaaa';
$word = 'aaa';
$replace = array(null,') xxx','yyy');
エコー '元のテキスト :'.$string.'
出力: '.multiple_replace_words($word,$replace,$string)'
';
//例 2
$string = '中国語 aaab 中国語 ccaaad 中国語 eee';
$word = '中国語'
$replace = array(null) ,' (中国語 2 を置換)',' (中国語 3 を置換) ');
echo '元のテキスト: '.$string.'
出力: '.multiple_replace_words($word,$replace, $string);
/*
出力結果:
元のテキスト: aaabaaacaaadaaa
出力: aaabxxxcyyydaaa
元のテキスト: 中国語 aaab 中国語 ccaaad 中国語 eee
出力: 中国語 aaab (中国語を置き換えます) 2) ccaaad (中国語を置き換えます 3) eee
//*/
著者: Zjmainstay