如果包含特定字符串,则删除链接

时间:2019-02-12 18:06:30

标签: php str-replace strpos

我有这个PHP代码,在发送电子邮件之前,将特定单词转换为链接。

$message = str_replace(
           'hello',
           '<a id="get-ahead-link" style="color: #ffa503;" href="https://somelink.com"> hello </a>',
           $message,
           $count);

上面的代码可以完全正常工作,但是当包含单词“ hello”的链接时,我遇到了一个问题。

示例:

  

你好,世界。请访问我的网站:http://helloworld.com

它变成:

  

hello世界。请访问我的网站:http:// hello world.com。

但是我需要的是

  

hello世界。请访问我的网站:http://helloworld.com

这可能吗?我的工作中缺少什么?

1 个答案:

答案 0 :(得分:2)

您可以使用preg_replace(使用正则表达式替换),并用(?<=^|\s)(“在字符串的开头或前面带有空格字符”)和{{3} }:

$message = preg_replace(
  '/(?<=^|\s)hello\b/', 
  '<a id="get-ahead-link" style="color: #ffa503;" href="https://somelink.com">hello</a>', 
  $message, 
  -1, 
  $count
);

演示:\b (word boundaries)

注意:我留下了其他参数来检索$count

其他(不相关的)说明:在大多数情况下,应避免使用此类内联HTML样式。