我有这个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。
这可能吗?我的工作缺少什么?
您可以使用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样式。