Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема с записью в массив результатов Simple HTML DOM

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
VirtualMan
Отправлено: 21 Июля, 2016 - 14:19:15
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016  
Откуда: Россия


Помог: 0 раз(а)




Доброго времени суток.

Прошу помощи вожусь день не могу найти решение:
Выборку делаю при помощи библиотеки - PHP Simple HTML DOM Parser

Все в порядке кроме одного, когда хочу урлы со страницы сохранить в массив
Сохраняет только последнее значение.

---
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. foreach  ($html->find('td[style="font-family:Arial;vertical-align:left;"]', 0)->parent()->find('a') as $element) {
  4. echo $element->href  . '<br>'; // на экран выводит все как надо
  5.  
  6.     $url = $element->href;
  7.     // settype($url, "string"); пробовал присваивать принудительно тоже нулевой эффект
  8.     $arrayurl = array();
  9.     $arrayurl[] = "{$url}"; // пробовал присваивать просто переменную $url
  10.  
  11. }
  12. print_r ($arrayurl); // выводит только Array ( [0] => со значением последней строки.
  13.  


Что я делаю не верно?

(Отредактировано автором: 21 Июля, 2016 - 14:22:52)

 
 Top
Мелкий Супермодератор
Отправлено: 21 Июля, 2016 - 14:42:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




VirtualMan пишет:
$arrayurl = array();

Вы понимаете:
а) что делает эта строка?
б) где именно она находится?
в) комбинированный эффект пунктов а и б?


-----
PostgreSQL DBA
 
 Top
Строитель Модератор
Отправлено: 21 Июля, 2016 - 14:50:39
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




VirtualMan пишет:
Что я делаю не верно?
PHP:
скопировать код в буфер обмена
  1. // Массив объявлять надо ВНЕ цикла
  2. $arrayurl = array();
  3.  
  4. // Так же и с объявлением переменной, если к ней
  5. // будет применяться конкатенация - объявить перед циклом
  6. $url = '';
  7.  
  8. foreach ($html->find('td[style="font-family:Arial;vertical-align:left;"]', 0)->parent()->find('a') as $element) {
  9.     // Сохранить в массив :
  10.     $arrayurl[] = $element->href;
  11.    
  12.     // Сохранить в переменную ("." - оператор конкатенации)
  13.     $url .= $element->href;
  14. }
  15.  
  16. echo '<pre>'; var_dump($arrayurl, $url);
 
 Top
VirtualMan
Отправлено: 21 Июля, 2016 - 18:03:50
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2016  
Откуда: Россия


Помог: 0 раз(а)




Строитель пишет:
// Массив объявлять надо ВНЕ цикла
$arrayurl = array();


Спасибо эту ошибку я как раз и не мог понять.
Получалось, что я присваивал каждый раз пустое значение массива.
Вопрос закрыт

(Отредактировано автором: 21 Июля, 2016 - 18:05:46)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB