0

我正在构建一个程序,该程序使用通用标签显示一组特定用户的 twitter 提要。该程序从表单中的用户输入中获取一组用户名和一个标签。我正在使用正则表达式(我不太擅长的东西)来清除包含主题标签的推文,然后我想回应出来。但是,该程序目前无法运行。这是我的工作:

    <?php
        $hash = $_GET['hash'];
        $users = $_GET['users'];
        $users = str_replace(" ", "", $users);
        $hash = str_replace(" ", "", $hash);
        $users = explode(",",$users);
        $regex = "/^[#]+[a-zA-Z0-9_]+[ ]$/";
        $url = 'http://search.twitter.com/search.json?q='.$user.'&lang=en&rpp=100';

        foreach($users as $user){
        $jsontwitter = file_get_contents($url);
        $twitter = json_decode($jsontwitter, true);
        $twittertext = $twitter["results"];

        if(preg_match($regex, $twittertext['text'])){
        foreach($twittertext as $text){
        echo '<a href="http://twitter.com/'.$text['from_user'].'">@'.$text['from_user'].'</a>: '.$text['text'].'<br>';
            }
          }
        }
    ?>

有什么建议么?

4

2 回答 2

0

想通了,在朋友的帮助下。$url 变量需要在 for 循环中才能使用定义的 $user 变量运行搜索。从那里,json 被返回、解码,结果通过另一个 for 循环运行,以隔离包含指定主题标签的单个推文,在 if 语句中使用正则表达式。推文随后被回显。此外,处理正则表达式的方式不正确 - 它正在寻找以 # 开头并包含任何字符并以空格结尾的字符串。它应该寻找一个带有 # 的字符串,其后是 $hash 变量,后跟一个空格。

生成的工作脚本:

<?php
$hash = $_GET['hash'];
$users = $_GET['users'];

$users = str_replace(" ", "", $users);
$hash = str_replace(" ", "", $hash);
$users = explode(",",$users);

$regex = "/($i)#". $hash ."/";


foreach($users as $user){

    $url = 'http://search.twitter.com/search.json?q='.$user.'&lang=en&rpp=100';
    $jsontwitter = file_get_contents($url);
    $twitter = json_decode($jsontwitter, true);
    $twittertext = $twitter["results"];

    foreach($twittertext as $text){
        if(preg_match($regex, $text['text'])){
            echo '<a href="http://twitter.com/'.$text['from_user'].'">@'.$text['from_user'].'</a>: '.$text['text'].'<br>';

        }
    }
}       

?>
于 2012-12-17T04:33:28.017 回答
0

你应该首先纠正错别字。您的 q= 变量为空,因为第 8 行的变量未在上面定义。看来您可能想在那里使用'$users',如第 3 行所定义的那样。我将从命令行(如下所示)进行测试,并在第 2 行和第 3 行设置静态变量。在整个过程中放置​​打印语句以确定您的失败观点。

$ php test.html
警告:file_get_contents(http://search.twitter.com/search.json?q=&lang=en&rpp=100):打开流失败:HTTP 请求失败!HTTP/1.0 403 禁止

于 2012-12-16T20:15:22.933 回答