проблемы с передачей значений массива

Я создаю PHP-программу, которая в основном захватывает только ссылки на изображение из моего канала Twitter и отображает их на странице, у меня есть 3 компонента, которые я создал, чтобы все работало нормально.

Первым компонентом является компонент twitter oauth, который захватывает текст твита и создает массив, который отлично работает сам по себе.

Вторая – это функция, которая обрабатывает твиты и возвращает только твиты, содержащие ссылки на изображение, и это хорошо работает.

Программа прерывается во время третьего раздела, когда ссылки обрабатываются, и изображение отображается, у меня не было проблем с этим самостоятельно, и из моих попыток устранить проблему кажется, что она разбивается на $ images (); массив, поскольку этот массив пуст.

Я уверен, что сделал глупую ошибку, но я пытался найти ее уже более дня и не могу ее исправить. Любая помощь будет замечательной! Спасибо, парни!

код:

<?php if ($result['socialorigin']== "twitter"){ $twitterObj = new EpiTwitter($consumer_key, $consumer_secret); $token = $twitterObj->getAccessToken(); $twitterObj->setToken($result['oauthtoken'], $result['oauthsecret']); $tweets = $twitterObj->get('/statuses/home_timeline.json',array('count'=>'200')); $all_tweets = array(); $hosts = "lockerz|yfrog|twitpic|tumblr|mypict|ow.ly|instagr"; foreach($tweets as $tweet) { $twtext = $tweet->text; if(preg_match("~http://($hosts)~", $twtext)){ preg_match_all("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t<]*)#ise", $twtext, $matches, PREG_PATTERN_ORDER); foreach($matches[0] as $key2 => $link){ array_push($all_tweets,"$link"); } } } function height_compare($a1, $b1) { if ($a1 == $b1) { return 0; } return ($a1 > $b1) ? -1 : 1; } foreach($all_tweets as $alltweet => $tlink){ $doc = new DOMDocument(); // Okay this is HTML is kind of screwy // So we're going to supress errors @$doc->loadHTMLFile($tlink); // Get all images $images_list = $doc->getElementsByTagName('img'); $images = array(); foreach($images_list as $image) { // Get the src attribute $image_source = $image->getAttribute('src'); if (substr($image_source,0,7)=="http://"){ $image_size_info = getimagesize($image_source); $images[$image_source] = $image_size_info[1]; } } // Do a numeric sort on the height uasort($images, "height_compare"); $tallest_image = array_slice($images, 0,1); $mainimg = key($tallest_image); echo "<img src='$mainimg' />"; } print_r($all_tweets); print_r($images); } 

Измените цикл for, в котором вы загружаете фактические изображения для перемещения массива images вне цикла for. Это предотвратит очистку цикла каждый раз.

  $images = array(); foreach($all_tweets as $alltweet => $tlink){ $doc = new DOMDocument(); // Okay this is HTML is kind of screwy // So we're going to supress errors @$doc->loadHTMLFile($tlink); // Get all images $images_list = $doc->getElementsByTagName('img'); foreach($images_list as $image) { // Get the src attribute $image_source = $image->getAttribute('src'); if (substr($image_source,0,7)=="http://"){ $image_size_info = getimagesize($image_source); $images[$image_source] = $image_size_info[1]; } } // Do a numeric sort on the height uasort($images, "height_compare"); $tallest_image = array_slice($images, 0,1); $mainimg = key($tallest_image); echo "<img src='$mainimg' />"; }