Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача переменной в функцию. Проблема, Нечто паронормальное, наверное оО 
V
    Опции темы
Just123
  Дата 13.3.2012, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 9.12.2007
Где: localhost

Репутация: нет
Всего: нет



Ребят, я даже не знаю, что за день сегодня такой, но у меня снова неразрешимая проблема, долго бился с ней, но она победила. 
Сил моих больше нет  smile , помогите пожалуйста.

Есть код:
Код

for ($x = '1'; $x < 3; $x++) {
    echo $x;
    $html = file_get_html("http://www.example.ru/catalog/p_".$x.".html");
    // Вытаскиваем все товары со страницы 
    $all = $html->find('.items',0);
    $i = 0;
    
    while($items = $all->children($i++)){
        // Находим и сохраняем ТИП товара в массив $item['type']
        $item['type'][] = $items->find('span',0);

        // Находим и сохраняем НАЗВАНИЕ товара в массив $item['name']
        $name = $items->find('h2',0);
        $span = $name->find('span',0);
        $span->outertext = '';
        $item['name'][] = $name->innertext;
        

    }
    
    // Очищаем память
    $all->clear();
    unset($all);
    $html->clear();
    unset($html);
}


В 3 строке:
Цитата

$html = file_get_html("http://www.example.ru/catalog/p_".$x.".html");


Если убрать $x:
Цитата

$html = file_get_html("http://www.example.ru/catalog/p_4.html");

то все нормально работает.

Как только вместо номера страницы, ставлю переменную $x, возникает ошибка:
Fatal error: Call to a member function find() on a non-object in E:\www\localhost\price\test.php on line 46

46 строчка выглядит так:
Код

        // Находим и сохраняем АРТИКУЛ товара в массив $item['article']
        $article   = $item_info->children(0);
        $item['article'][] = $article->find('span',0)->innertext;


С чем это может быть связано?

Это сообщение отредактировал(а) Just123 - 14.3.2012, 07:54
PM MAIL   Вверх
ksnk
Дата 13.3.2012, 15:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(Just123 @  13.3.2012,  15:11 Найти цитируемый пост)
С чем это может быть связано?

с тем, что
Цитата(Just123 @  13.3.2012,  15:11 Найти цитируемый пост)
Call to a member function find() on a non-object 


Код

// Вытаскиваем всю оставшуюся информацию о товаре 
        $item_info = $items->find('.item_info',0);
        // Находим и сохраняем АРТИКУЛ товара в массив $item['article']
        $article   = $item_info->children(0);


$item->find в не смог найти '.item_info' для текста .../p_0.php, или ../p_[123] а для p_4 - находит.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Just123
Дата 13.3.2012, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 9.12.2007
Где: localhost

Репутация: нет
Всего: нет



ksnk, Нет, я проверял на одной и той же странице, с этим точно ошибки нет.
Более того, сейчас вообще не работает никак о_О
я даже цикл for убрал, а ошибка осталась.

Код

<?php

//  Подгружаем библиотеку для парсинга HTML
require_once ('simple_html_dom.php');

// Парсим HTML код страницы
$html = file_get_html('http://www.example.ru/catalog/p_1.html');

// Узнаем колличество страниц в каталоге
$total_page = $html->find('.page_numder1',0);
$total_page = $total_page->last_child()->plaintext;
$html->clear();
unset($html);



    
    $html = file_get_html('http://www.example.ru/catalog/p_1.html');
    // Вытаскиваем все товары со страницы 
    $all = $html->find('.items',0);
    $i = 0;
    
    while($items = $all->children($i++)){
        // Находим и сохраняем ТИП товара в массив $item['type']
        $item['type'][] = $items->find('span',0);

        // Находим и сохраняем НАЗВАНИЕ товара в массив $item['name']
        $name = $items->find('h2',0);
        $span = $name->find('span',0);
        $span->outertext = '';
        $item['name'][] = $name->innertext;

        

    }
    
    // Очищаем память
    $all->clear();
    unset($all);
    $html->clear();
    unset($html);


    
    

?>


Добавлено @ 15:45
Хм...
Проблема действительно в этой строке 
Код

$item['price'][] = $price->find('.price',0)->innertext;


но буквально же 5 минут назад, тот же самый код работал, почему сейчас перестал? О_о
HTML код страницы не изменился, только что проверил. 

Это сообщение отредактировал(а) Just123 - 14.3.2012, 07:55
PM MAIL   Вверх
Evghenusi
Дата 13.3.2012, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



Цитата(Just123 @  13.3.2012,  15:40 Найти цитируемый пост)
я даже цикл for убрал, а ошибка осталась.

зря, мне как раз понравилось значение присвоенное переменной $x  smile 
Цитата(Just123 @  13.3.2012,  15:11 Найти цитируемый пост)
for ($x = '1'; $x < 3; $x++) {


PM WWW   Вверх
Just123
Дата 13.3.2012, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 9.12.2007
Где: localhost

Репутация: нет
Всего: нет



Evghenusi, А что с ней не так?
PM MAIL   Вверх
Evghenusi
Дата 13.3.2012, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



всё так, php позволяет smile
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1182 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.