$arr = array('微笑','吃饭','睡觉','看书','玩手机','做梦');
//定义一个空数组
$arrt=array();
//给数组的每个元素加上[],使其变成array('[微笑]','[吃饭]');
foreach ($arr as $key => $value) { $arrt[$key]='['.$value.']'; }
//反转数组,键值互换
$arrt=array_flip($arrt);
$str='你好啊微笑[微笑],吃饭了吗[吃饭]';
$str=preg_replace("/[.*?]/",'$arrt['$1']',$str);
我想得到 你好啊 <img src=./img/1.gif><img src=./img/1.gif><img src=./img/1.gif>,吃饭了吗<img src=./img/2.gif>
这种替换效果
请问preg_replace里面的正则和替换的内容怎么写,我怎么写都写不对
数据分析师2017-10-01 00:39:06
How to replace php regular expression with the value in the array? -PHP Chinese website Q&A-How to replace PHP regular expressions with values in an array? -PHP Chinese website Q&A
Let’s take a look and learn.
迷茫2017-03-03 11:00:34
[]要加反斜杠转义,下面这个可以生效,其实这边可以不用正则替换,你用str_replace就能实现
$arr = array('微笑','吃饭','睡觉','看书','玩手机','做梦'); $arrt=array_flip($arr); $str='你好啊微笑[微笑],吃饭了吗[吃饭]'; foreach($arrt as $aKey => $aVal) { $pattern = "/\[$aKey\]/"; $str=preg_replace($pattern,"<img src=./img/" . $aVal . '.jpg' . '>', $str); } var_dump($str);exit;