删除包含特定字符串的链接

问题描述 投票:0回答:1

我有这个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://helloworld.com。

但我需要的是:

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

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

php str-replace strpos
1个回答
2
投票

您可以使用preg_replace(使用正则表达式替换)并使用(?<=^|\s)(“位于字符串的开头或前面有空格字符”)和\b (word boundaries)包围您的字符串:

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

但是:Kua zxsw指出

注意:我留下了额外的参数来检索https://3v4l.org/SknUT

其他(无关)注意事项:在大多数情况下应避免使用此类内联HTML样式。

© www.soinside.com 2019 - 2024. All rights reserved.