Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
PostMix
4 / 4 / 0
Регистрация: 23.11.2014
Сообщений: 4
1

Ожидание выполнения функции

23.11.2014, 17:32. Просмотров 2088. Ответов 7
Метки нет (Все метки)

Здравствуйте.

У меня есть файл, в котором список ссылок. Мне необходимо вытягивать значения определенных атрибутов из исходника и потом заполнять текстовый файл или базу данных (это уже не важно)

Вопросы:
1) Страница "бесконечно" грузится. Я так понимаю, это зацикливание в foreach, но вот почему - не пойму...
2) Нужно ли тут ожидение выполнения file_get_html, там где слово "пауза"? (или же ф-ция отдаст управление в тело программы после выполнения?)

Помогите, пожалуйста!

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
    require_once 'simplehtmldom_1_5\simple_html_dom.php';
 
    $arr=file('file.txt');
    $out=fopen('data.csv','w');
    for($i=0;$i<count($arr);$i++)
    {
        $html = file_get_html($arr[$i]);
        //Пауза
        foreach($html->find('span.b-product__sku',0) as $element)
        {
            fwrite($out,$element->title.';');
        }
        $html->clear();
        unset($html);
    }
    fclose($out);
?>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2014, 17:32
Ответы с готовыми решениями:

Время выполнения функции
Есть функция file_get_contents она парсит страничку. Но страница виснет когда...

Скорость выполнения функции
У меня в классе Resp() есть функция H_c() которая скачивает с некого сайта...

Ошибка выполнения функции file на Хосте
Доброе время суток уважаемые форумчане! Помогите в следующем вопросе! написал...

Include ожидание выполнения кода
Доброго времени. Не буду углубляться в подробности, вот что я творю: У меня...

Ожидание конца выполнения скрипта
Имеется класс, в котором есть функция, время выполнения какой - около 5 минут ...

7
ads
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
23.11.2014, 18:06 2
Цитата Сообщение от PostMix Посмотреть сообщение
или же ф-ция отдаст управление в тело программы после выполнения
отдаст
0
PostMix
4 / 4 / 0
Регистрация: 23.11.2014
Сообщений: 4
23.11.2014, 18:31  [ТС] 3
А в чем же тогда проблема?.. Если "тело" ждет ф-цию, то откуда же зацикл.?

Добавлено через 13 минут
А про это что можете сказать?
"Fatal error: Call to a member function find() on a non-object in Z:\home\base.ru\www\parser_data.php on line 10"
1
ads
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
23.11.2014, 18:47 4
Цитата Сообщение от PostMix Посмотреть сообщение
то откуда же зацикл.?
нет никакого зацикл.
Цитата Сообщение от PostMix Посмотреть сообщение
А про это что можете сказать?
Что включать вывод ошибок нужно сразу.
Цитата Сообщение от PostMix Посмотреть сообщение
Call to a member function find() on a non-object
Ваш PHP Simple HTML DOM Parser не может прочитать страницу
1
PostMix
4 / 4 / 0
Регистрация: 23.11.2014
Сообщений: 4
23.11.2014, 19:22  [ТС] 5
И еще: на каждую итерацию выдает "Warning: file_get_contents(link ) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in Z:\home\base.ru\www\simplehtmldom_1_5\simple_html_dom.php on line 75"

Добавлено через 1 минуту
Цитата Сообщение от ads Посмотреть сообщение
Ваш PHP Simple HTML DOM Parser не может прочитать страницу
И как быть?.. В чем может быть проблема?

Добавлено через 32 минуты
Итак: Выяснил, что проблема с передачей аргумента. То есть:
PHP
1
2
3
echo file_get_html('http://google.com/'); //работает
$url = 'http://google.com/';
echo file_get_html($url); //не работает
Как испраить не знаю. Даже не знаю в какую сторону еще копать...

Юзал rtrim(); думал, может пробел мешает... - нет
Через settype($arr[0],string); - тоже нет...

Кто знает - выручайте, ребят...
1
pav1uxa
1857 / 1711 / 802
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
23.11.2014, 22:58 6
Цитата Сообщение от PostMix Посмотреть сообщение
PHP
1
2
3
echo file_get_html('http://google.com/'); //работает
$url = 'http://google.com/';
echo file_get_html($url); //не работает
Во-первых, этого быть не может. Записи совершенно равнозначны.
Во-вторых, проверил у себя - работает и так и так.

Ошибка в другом месте. Ну например функция file так, как Вы ее используете будет возвращать строки вместе с переносами строк. Правильнее в Вашем случае будет
PHP
1
$arr = file("file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
Но раз Вы говорите что rtrim() не помогает, то и это не поможет. Но так во всяком случае будет правильнее.

Может ссылки там какие-то неправильные, может еще что... Возможно на эти сайты нельзя заходить через роботов и нужно подделывать заголовки (например user-agent). Вариантов может быть много.
1
PostMix
4 / 4 / 0
Регистрация: 23.11.2014
Сообщений: 4
24.11.2014, 23:04  [ТС] 7
Цитата Сообщение от pav1uxa Посмотреть сообщение
Во-первых, этого быть не может. Записи совершенно равнозначны.
Во-вторых, проверил у себя - работает и так и так.
У меня не работало(

Цитата Сообщение от pav1uxa Посмотреть сообщение
Правильнее в Вашем случае будет
Код PHP
1
$arr = file("file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
Спасибо. Заработало вдруг...

И еще, проблема решена другим способом: тяну ссылки не из файла, а из базы данных.
Всем спасибо, кто ответил.
1
Greee
0 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 4
26.09.2018, 17:27 8
О! Спасители
0
26.09.2018, 17:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2018, 17:27

Ввести в массив результат выполнения функции
Здравствуйте ! Мне есть такой код: function getServers() { $sqlQuery =...

Как задать значения переменным до выполнения функции?
Как задать значения переменным $av, $aq до выполнения функции? &lt;?php ...

Ожидание выполнения функции, вызванной из потока
Задача в том, что мне нужно посчитать за сколько времени запустится и удалится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru