微博开发之@替换示例代码

发布时间:2020-07-06编辑:脚本学堂
在微博开发中,对于@的替换,很多人可能会用到正则吧,正则除了效率问题,还有误替换,这里分享一个例子,大家参考下。

举个例子,微博开发之@替换:
@ponyma可能被解析成了"@pony"+"ma"

代码:
 

复制代码 代码示例:
$users['pony']      = '马化腾';
$users['ponyma']    = '坡泥马';
$users['ponyli']    = '坡泥李';
$text = "@pony:特别声明,@ponyli@ponyma@ponywong@ponylao什么的都不是我";
preg_match_all('/@w+/', $text, $matches);
if(is_array($matches[0]) && !empty($matches[0])){
    $replaces       = array_combine($matches[0], $matches[0]);
}
foreach($users as $userid=>$username){
    $replaces['@'.$userid]  = "<a href='http://t.qq.com/{$userid}'>{$username}</a>";
}
$html               = strtr($text, $replaces);
echo $html;
 

结果:
 

<a href=’http://t.qq.com/pony’>马化腾</a>:特别声明,<a href=’http://t.qq.com/ponyli’>坡泥李</a><a href=’http://t.qq.com/ponyma’>坡泥马</a>@ponywong@ponylao什么的都不是我