为了账号安全,请及时绑定邮箱和手机立即绑定

php用大写单词替换描述中的特定单词并循环遍历它

php用大写单词替换描述中的特定单词并循环遍历它

PHP
手掌心 2023-04-23 17:51:54
需要用大写搜索词替换针对数组进行测试的字符串中所有存在的词。我现在陷入了正确的循环。我的代码:   $array = [        'weizen',        'dinkel',        'gerste',        'khorasan',        'eier',        'haselnuss',        'walnuss'];   $description = "Weizenbrötchen auf Hartweizenbasis und Eiern mit Walnusscreme und Haselnusspaste sind leckerer mit Dinkelflocken."foreach($array as $item) {if (strpos($description, $item) !== false) {   // $description; echo  str_replace($item, mb_strtoupper($item), $description);   }}实际结果: “硬粒小麦面包和鸡蛋配核桃奶油和榛子酱比拼拼薄片更美味。硬粒小麦面包和鸡蛋配核桃奶油和榛子酱配拼拼薄片更美味。硬粒小麦面包和鸡蛋配拼拼薄片核桃奶油和榛子酱搭配斯佩耳特薄片更美味.期望的结果:以硬粒小麦和鸡蛋为基础的小麦卷配上核桃奶油和榛子酱,配上 SPELLED 薄片更美味。
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

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.

查看完整回答
反对 回复 2023-04-23
?
冉冉说

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;


查看完整回答
反对 回复 2023-04-23
  • 2 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信