2 回答
![?](http://img1.sycdn.imooc.com/533e50ed0001cc5b02000200-100-100.jpg)
TA贡献1864条经验 获得超6个赞
一种方法是从要替换的字符串中创建一个正则表达式,然后使用preg_replace_callback
将任何匹配的值转换为大写:
$array = [
'weizen',
'dinkel',
'gerste',
'khorasan',
'eier',
'haselnuss',
'walnuss'];
$description = "Weizenbrötchen auf Hartweizenbasis und Eiern mit Walnusscreme und Haselnusspaste sind leckerer mit Dinkelflocken.";
$pattern = '/' . implode('|', $array) . '/iu';
echo preg_replace_callback($pattern, function ($m) { return mb_strtoupper($m[0]); }, $description);
输出:
WEIZENbrötchen auf HartWEIZENbasis und EIERn mit WALNUSScreme und HASELNUSSpaste sind leckerer mit DINKELflocken.
![?](http://img1.sycdn.imooc.com/54584e1f0001bec502200220-100-100.jpg)
TA贡献1877条经验 获得超1个赞
使用array_map将原始数组转换为大写并准备模式,然后使用preg_replace它:
$array = [
'weizen',
'dinkel',
'gerste',
'khorasan',
'eier',
'haselnuss',
'walnuss'];
$description = "Weizenbrötchen auf Hartweizenbasis und Eiern mit Walnusscreme und Haselnusspaste sind leckerer mit Dinkelflocken.";
$replaces = array_map(function($v){ return strtoupper($v);}, $array);
$patterns = array_map(function($v){ return '/'.$v.'/i';},$array);
$str = preg_replace($patterns,$replaces,$description);
echo $str;
- 2 回答
- 0 关注
- 120 浏览
添加回答
举报