-
12345678_0001
<?php
$newword = "
直达:通往
小:大
";
$newword = explode(PHP_EOL,trim($newword));
$patter = $need = array();
foreach ($newword as $key => $value) {
$tmp = explode(':',$value);
$patter[] = '/'.$tmp[0].'/';
$need[] = $tmp[1];
}
$str_txt = "这是一条直达美好殿堂的小道。";
echo preg_replace($patter,$need,$str_txt);
-
青春有我
用的方法比较笨。
<?php
$newword = "
直达:通往
小:大
";
$str_txt = "这是一条直达美好殿堂的小道。";
# 根据换行符拆分
$keyword_list = trim($newword);
$keyword_arr = explode("\n", $keyword_list);
# 构建替换数组
$replace_arr = [];
$temp = [];
foreach($keyword_arr as $k => $v) {
# 分割放入替换数组
$temp = explode(':', $v);
$replace_arr[ $temp[0] ] = $temp[1];
}
# 替换文字
foreach($replace_arr as $k => $v) {
$str_txt = str_replace($k, $v, $str_txt);
}
var_dump($str_txt);
运行输出如下:
# fhy at Centos7 in ~/myphp [14:55:16]
→ php replace.php
string(42) "这是一条通往美好殿堂的大道。"
(venv)
-
BIG阳
1 <?php 2 $newword = " 3 直达:通往 4 小:大 5 "; 6 $str_txt = "这是一条直达美好殿堂的小道。"; 7 $pairs = preg_split("/[:".PHP_EOL."]/", trim($newword)); 8 $i = 0; 9 while($i < count($pairs)) { 10 list($ori[], $tar[]) = [$pairs[$i++], $pairs[$i++]]; 11 } 12 var_dump(str_replace($ori, $tar, $str_txt));输出:string(42) "这是一条通往美好殿堂的大道。"str_replace是支持批量替换的。