twitter搜索引擎系统过滤主题标签或@

时间:2014-05-11 04:16:09

标签: php mysql mysqli

我想问一下Twitter搜索引擎,我希望它可以用于我的网站,例如

$data; //it's from search engine form 

我想如果$data#开头,那么我使用mysql查询来搜索包含hashtag的数据

如果$data@开头,则使用mysql查询搜索包含@的数据

我想在查询

之前过滤$data
mysqli_query($con,"SELECT*FROM table WHERE data LIKE '%$data%'");

如果数据有hashtag@,如何检查?谢谢

1 个答案:

答案 0 :(得分:0)

switch (substr($data,0,1)){
    case '@': //if $data begins with @
        mysqli_query($con,"SELECT * FROM table WHERE data LIKE '%$data%'");
    break;
    case '#': //if $data begins with #
        mysqli_query($con,"SELECT * FROM table WHERE data LIKE '%$data%'");
    break;
    default: //neither of above
        echo "your query doesn't begin with @ or #";   
}

编辑以下评论:

您正在寻找preg_match_all()以下是您要执行的操作的示例:

这将创建包含所需字符串的2 arrays$hashes$arobases)。

preg_match_all("(#[^\s]+)", "hello : #hash1 #hash2 @at1 @at2", $hashes);
preg_match_all("(@[^\s]+)", "hello : #hash1 #hash2 @at1 @at2", $arobases);
var_dump($hashes[0]);
echo "<br/><hr/>";
var_dump($arobases[0]);