『回复列表(14|隐藏机器人聊天)』
<?php
function lstmsg($txt,$send='有人提到你')
{
if(preg_match_all("!(@|@)([\\x{4e00}-\\x{9fa5}A-Za-z0-9_\\-]{1,})(\x20| |<|\xC2\xA0|\r|\n|\x03|\t|,|\\?|\\!|:|;|,|。|?|!|:|;|、|…|$)(.*?)!ue",$txt,$rs))
{
$s=preg_replace("!(@|@)([\\x{4e00}-\\x{9fa5}A-Za-z0-9_\\-]{1,})(\x20| |<|\xC2\xA0|\r|\n|\x03|\t|,|\\?|\\!|:|;|,|。|?|!|:|;|、|…|$)!ue","'@\\2 \\3'",$txt);
/* 为了捕捉小片段
如果输入的是 @100。。。。,那么将会变成 @100 。。。。,方便使用strpos函数获取字符所在位置
*/
$ary=array();
foreach($rs[2] as $v)
{
$n=strpos($s,'@'.$v.' ');//得到所在位置
$msgtxt=mb_substr($s,$n,15,'utf-8').'......';//截取片段
if(ctype_digit($v)){//如果是纯数字,则认为是uid
$ary[$v]=$msgtxt;
continue;
}else{//不是纯数字,
$ary[$this->getuid($v)]=$msgtxt;
}
}
foreach ($ary as $key=>$val)
{//遍历数组,覆盖重复键名(键名就是uid)
$arr[$key]=$val;
}
foreach ($arr as $key=>$val)
{//发送提醒信息
if($this->isdata($key))
{//uid是否存在
$this->lstmsg_add($key,$send.'[br]'.$val);
}
}
}
}
?>