我有一个名为'$ caption'结果的PHP $ var 结果。该结果有时会出现像Instagram或Twitter这样的#hashtag字样;
Caipirinha类似于莫吉托,除了没有薄荷......还有更多的酸橙。 #Rio #Olympics #RioodeJaneiro #Caipirinha
我只是想在文字中勾起第一个字眼(粗体)。
在 PHP 中,我怎么能(挂钩)在文本中首先出现严重的单词($ var result)?
感谢您的回答。
答案 0 :(得分:0)
<?php
$result = "This is a sample result #cool #muchwow";
$split = explode("#", $result);
$returnStr = '<b>#'.$split[1].'</b>';
echo str_replace('#'.$split[1], $returnStr, $result);
?>
输出:
This is a sample result <b>#cool</b> #muchwow
爆炸将$split
设置为包含主题标签之间的单词的数组。
因此,在您的示例中,$split
变量将等于['Rio','Olympics'等等]。然后我发现第一次出现的'#'等于$ split [1]。
完成后我执行一个简单的str_replace()
来查找添加html粗体标签的第一个#标签。
请在此处查看:https://eval.in/619127
答案 1 :(得分:0)
您可以将preg_match
与正则表达式匹配,以匹配第一个#word
。类似的东西:
$string = 'The Caipirinha is similar to a mojito, except there’s no mint … and there are a lot more limes. #Rio #Olympics #RiodeJaneiro #Caipirinha';
preg_match('/#\S+/', $string, $firsthashedword);
echo $firsthashedword[0];
应该这样做。 \S
是任何非空白字符。 +
是一个量词,意味着#
之后必须至少有一个非空白字符。一旦遇到空白,比赛就会停止。
PHP演示:https://eval.in/619122
正则表达式演示:https://regex101.com/r/mE8lB6/1