首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP在字符串中查找多个单词,并在<span>标记中包装

PHP在字符串中查找多个单词,并在<span>标记中包装
EN

Stack Overflow用户
提问于 2015-03-19 16:05:50
回答 4查看 4.1K关注 0票数 3

我在字符串中找到关键字“彩弹”,并将其包装在跨度标签中,将其颜色改为如下所示的红色.

代码语言:javascript
复制
$newoutput = str_replace("Paintball", "<span style=\"color:red;\">Paintball</span>", $output); 

echo $newoutput;

这是可行的,但人们在这个领域写的是“彩球”、“彩弹”、“油漆球”、“油漆球”等。

是否有更好的方法来做到这一点,而不是重复它的每一个字?

理想的情况是..。

代码语言:javascript
复制
$words = "Paintball", "paintball", "Paint Ball", "paint ball";

$newoutput = str_replace("($words)", "<span>$1</span>", $output);

但我不知道怎么写。

,好吧,那么混合的答案让我来到这里.

代码语言:javascript
复制
$newoutput = preg_replace("/(paint\s*ball|airsoft|laser\s*tag)/i", "<span>$1</span>", $output); 
    echo $newoutput;

而且效果很好,非常感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-19 16:11:12

这应该适用于你:

(在这里,我只使用preg_replace()和修饰符i来表示不区分大小写)

代码语言:javascript
复制
<?php

    $output = "LaSer Tag";
    $newoutput = preg_replace("/(Airsoft|Paintball|laser tag)/i", "<span style=\"color:red;\">$1</span>", $output); 
    echo $newoutput;

?>

编辑:

此外,这是无效的语法:

代码语言:javascript
复制
$words = "Paintball", "paintball", "Paint Ball", "paint ball";

你的意思可能是:

代码语言:javascript
复制
$words = ["Paintball", "paintball", "Paint Ball", "paint ball"];
       //^ See here array syntax                              ^

你可以用这样的东西

代码语言:javascript
复制
$newoutput = preg_replace("/(" . implode("|", $words) . ")/i", "<span style=\"color:red;\">$1</span>", $output); 
票数 12
EN

Stack Overflow用户

发布于 2015-03-19 16:15:56

您可以使用preg_replace,向它传递一个单词数组,并使用i修饰符执行不区分大小写的匹配:

代码语言:javascript
复制
$patterns = array('/paint\s?ball/i', '/airsoft/i', '/laser tag/i');
$newoutput = preg_replace($patterns, '<span style="color:red;">$0</span>', $string);

\s?/paint\s?ball/中匹配零或一个空格-如果您愿意的话,可以使用\s*来匹配零或更多。

票数 3
EN

Stack Overflow用户

发布于 2016-01-29 15:29:39

简单易用

代码语言:javascript
复制
$title  =   get_the_title($post->ID);
$arraytitle = explode(" ", $title);
for($i=0;$i<sizeof($arraytitle);$i++){
    if($i == 0){
        echo $arraytitle[0].' ';
    }elseif($i >= 0){
        echo '<span>'.$arraytitle[$i].'</span>'." ";
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29149562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档