猿问

php用对应的文字去替换文章原来的文字

<?php
$newword = "
直达:通往
小:大
";
$str_txt = "这是一条直达美好殿堂的小道。"

?>

要求:用php代码实现“通往”替换文章中的“直达”,用“大”替换文章中的“小”字。其中变量$newword是多行文本框提交过来的,每行一组替换文字。

万千封印
浏览 769回答 3
3回答

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是支持批量替换的。
随时随地看视频慕课网APP
我要回答