PHP-如果出现单词,则行高亮修复

时间:2018-08-29 07:13:40

标签: php

你好,我有一个小问题

这是我当前的代码

<?php
$str = trim($_POST['email']);
$str = nl2br($str); // insert <br /> before \n 


$str = preg_replace($whitelistPregReplace, '<span style="color:blue">$1$2$3</span>', $str);

echo $str;
?>

问题在于,如果出现“ 1bird.one”,则会突出显示整行。我只希望在出现“ bird.one”的情况下显示整行,而不是出现fdsfsdfsdbird.onefdsfsd

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您可以使用单词边界(\b)来指示字符串不应紧靠其他“单词”字符:

~(.*)\b(bird\.one)\b(.*)~im

这将与efgerv bird.one evwerg匹配,但在rgbre 1bird.one erfrwf上失败。

https://regex101.com/r/riUhdD/1

答案 1 :(得分:0)

<?php
    $str = 'bird.one';
    $whitelist = [
        'bird.one',
        'bird.two'
    ];
    for($i = 0; $i < count($whitelist);$i++){
       if (strcmp($whitelist[$i], $str) == 0) { 
              /** add the span to highlight */ 
           echo "<span style='color:blue'>{$str}</span><br>";
       } else {
            /** other text to echo */
        }
    }
?>

只会回声和高飞bird.one。容易适应