2013-12-08 13 views
1

Я не могу включить мой файл tweets.php, он дает эту ошибку, когда я пытаюсь включить его в php: Неустранимая ошибка: нельзя использовать объект типа stdClass as array в C: \ xampp \ htdocs \ Documents \ PHP \ Проекты \ HassanTech \ tweets.php на линии 56Twitter Tweets Ошибка PHP

исходный код файла:

<?php 

require_once('twitteroauth.php'); 


define('CONSUMER_KEY', 'REMOVED'); 
define('CONSUMER_SECRET', 'REMOVED'); 
define('OAUTH_TOKEN', 'REMOVED'); 
define('OAUTH_TOKEN_SECRET', 'REMOVED'); 

$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET); 


$content = ""; 
if (!isset($username)){ 
    $username = "Hassan_Tech"; 
} 
if (!isset($number)){ 
    $number = 5; 
} 

$feed = $connection->get('statuses/user_timeline', array('screen_name' => $username, 'count' => $number)); 

//$url = "http://api.twitter.com/1/statuses/user_timeline.xml?screen_name={$username}&count={$number}"; 
//$tweets = file_get_contents($url); 
//$feed = new SimpleXMLElement($tweets); 

function time_stamp($date){ 
    if (empty($date)){ 
     return "No date provided"; 
    } 
    $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade"); 
    $lengths = array("60","60","24","7","4.35","12","10"); 
    $now = time(); 
    $unix_date = strtotime($date); 
    if (empty($unix_date)){ 
     return "Bad date"; 
    } 
    if ($now > $unix_date){ 
     $difference = $now - $unix_date; 
     $tense = "ago"; 
    } else { 
     $difference = $unix_date - $now; 
     $tense = "from now"; 
    } 
    for ($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++){ 
     $difference /= $lengths[$j]; 
    } 
    $difference = round($difference); 
    if ($difference != 1){ 
     $periods[$j] .= "s"; 
    } 
    return "$difference $periods[$j] $tense"; 
} 
for ($i = 0; $i <= $number-1; $i++){ 
    $status = $feed[$i]; // LINE 56 
    //$status = $feed->status[$i]; 

    if (isset($status->id)){ 
     $id = $status->id; 
    } 

    $created_at = $status->created_at; 
    $text = $status->text; 
    $text = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $text); 
    $text = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $text); 

    if (preg_match("/#(\w+)/", $text, $matches)){ 
     foreach($matches as $match){ 
      $match = str_replace("#", "", $match); 
      $text = preg_replace("/#(\w+)/","<a href=\"http://twitter.com/search?q={$match}\">$0</a>",$text); 
      $text = str_replace("<a href=\"http://twitter.com/search?q={$match}\">#","<span class=\"hash\">#</span><a href=\"http://twitter.com/search?q={$match}\" target=\"_blank\">",$text); 
     } 
    } 

    if (preg_match("/@(\w+)/", $text, $matches)) { 
     foreach($matches as $match) { 
      $match = str_replace("@", "", $match); 
      $text = preg_replace("/@(\w+)/", "<a href=\"http://www.twitter.com/{$match}\">$0</a>", $text); 
      $text = str_replace("<a href=\"http://www.twitter.com/{$match}\">@", "<span class=\"at\">@</span><a href=\"http://www.twitter.com/{$match}\" target=\"_blank\">", $text); 
     } 
    } 

    $content .= "<div class=\"status\"><div class=\"text\">{$text}</div>"; 

    if (isset($id)){ 
     $content .= "<div class=\"date\"><a href=\"http://twitter.com/Hassan_Tech/status/{$id}\" target=\"_blank\" title=\"".date("g:i A M jS", strtotime($created_at))."\">".time_stamp($created_at)."</a></div>"; 
    } else { 
     $content .= "<div class=\"date\"><a href=\"\" target=\"_blank\" title=\"".date("g:i A M jS", strtotime($created_at))."\">".time_stamp($created_at)."</a></div>"; 
    } 
    $content .= "</div>"; 
} 

echo $content; 
?> 

Пожалуйста, помогите мне, спасибо. Я буду очень признателен. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Спасибо. Я знаю, что вы, ребята, очень умны и, безусловно, можете помочь мне. Извините за плохой английский.

+0

Возможно, вы не захотите сделать вам токены, секреты и т. Д. – Niels

+0

Да, я их удалил. –

ответ

0

Ответ, возвращаемый twitter API, находится в формате json, вам нужно преобразовать его в массив.

$feed = json_decode($feed); 

Вышеупомянутая строка преобразует json в массив. Используйте его после получения ответа API.

+0

Я не знаю, как это сделать ... –

+0

просто добавьте вышеприведенную строку ниже –

+0

$ feed = $ connection-> get ('statuses/user_timeline', array ('screen_name' => $ username, 'count' => $ номер)); –

Смежные вопросы