在整个数组中读取关键字

时间:2011-11-10 20:44:29

标签: php arrays facebook keyword

我一直在研究我的应用程序的关键字检测部分,除了 $ msg 之外,它似乎都很好用我只能读取一个结果,这是第一个消息

我正试着让它读完整个数组。

如果我做 var_dump ,结果就在那里,我只是不确定如何读取数组。

try {
        $me = $facebook->api('/me');
        $fql    =   "SELECT message FROM status WHERE uid= me()";
        $param  =   array(
                          'method'    => 'fql.query',
                          'query'     => $fql,
                          'callback'  => ''
                          );
        $fqlResult   =   $facebook->api($param);}   
        } catch (FacebookApiException $e) {
        }
          foreach($fqlResult as $row){
                $abt = strtolower($row['about_me']);
                $qts = strtolower($row['quotes']);
                $msg = strtolower($row['message']);//This one is causing trouble!
                $cursewrds = $abt . $msg . $qts . $status;
                $keywords = array("test","curse","words);
                $regex ="/(". implode('|', $keywords) .")/";
                $total = (preg_match_all( $regex, $cursewrds, &$matches));

当我为$ msg执行fql查询时,看看数组的样子。

[
  {
    "message": "test 1"
  },
  {
    "message": "test 2"
  }, 
  {
    "message": "test 3"
  },
  {
    "message": "test 4"
  }
]

P.S。我不是最好的PHP,但如果我在这里,我已经尝试了我能想到的一切。

2 个答案:

答案 0 :(得分:1)

不确定你在那里发生了什么,但问题似乎是你的foreach循环在错误的地方。尝试:

foreach($fqlResult as $row){
     $abt = strtolower($row['about_me']);
     $qts = strtolower($row['quotes']);
     $msg = strtolower($row['message']);//This one is causing trouble!
     $cursewrds = $abt . $msg . $qts . $status;
     $keywords = array("test","curse","words);
     $regex ="/(". implode('|', $keywords) .")/";
     $total = (preg_match_all( $regex, $cursewrds, &$matches));

     $messages[] = $msg;    
}

答案 1 :(得分:0)

您复制并粘贴了此代码?

第9行末尾有一个额外的闭合花括号。

也许你移动了foreach语句,现在你没有正确地终止它,这就是为什么你只得到foreach循环的一次迭代?