Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
4 / 4 / 0
Регистрация: 23.11.2014
Сообщений: 4

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

23.11.2014, 17:32. Показов 5383. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.11.2014, 17:32
Ответы с готовыми решениями:

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

Время выполнения функции
Есть функция file_get_contents она парсит страничку. Но страница виснет когда сайт не доступен и грузит. как это ихбежать, поставит время...

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

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

Добавлено через 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
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
23.11.2014, 18:47
Цитата Сообщение от PostMix Посмотреть сообщение
то откуда же зацикл.?
нет никакого зацикл.
Цитата Сообщение от PostMix Посмотреть сообщение
А про это что можете сказать?
Что включать вывод ошибок нужно сразу.
Цитата Сообщение от PostMix Посмотреть сообщение
Call to a member function find() on a non-object
Ваш PHP Simple HTML DOM Parser не может прочитать страницу
1
4 / 4 / 0
Регистрация: 23.11.2014
Сообщений: 4
23.11.2014, 19:22  [ТС]
И еще: на каждую итерацию выдает "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\si mple_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
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
23.11.2014, 22:58
Цитата Сообщение от 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
4 / 4 / 0
Регистрация: 23.11.2014
Сообщений: 4
24.11.2014, 23:04  [ТС]
Цитата Сообщение от pav1uxa Посмотреть сообщение
Во-первых, этого быть не может. Записи совершенно равнозначны.
Во-вторых, проверил у себя - работает и так и так.
У меня не работало(

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

И еще, проблема решена другим способом: тяну ссылки не из файла, а из базы данных.
Всем спасибо, кто ответил.
1
0 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 21
26.09.2018, 17:27
О! Спасители
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.09.2018, 17:27
Помогаю со студенческими работами здесь

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

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

Ввести в массив результат выполнения функции
Здравствуйте ! Мне есть такой код: function getServers() { $sqlQuery = &quot;SELECT * FROM servers ORDER BY server_id DESC&quot;; ...

Action form только после выполнения функции
Добрый вечер есть форма: &lt;form method=&quot;post&quot; action= &quot;https://www.paypal.com/cgi-bin/webscr&quot; style=&quot;width:70%; float:left;&quot;&gt; ...

Как задать значения переменным до выполнения функции?
Как задать значения переменным $av, $aq до выполнения функции? &lt;?php $av=17; $aq=1; function to_bd($av, $aq) { .... } ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru