我有这个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。
这可能吗?我的工作中缺少什么?
答案 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
);
注意:我留下了其他参数来检索$count
。
其他(不相关的)说明:在大多数情况下,应避免使用此类内联HTML样式。