Dram

Рейтинг
1115
Регистрация
28.06.2008
hellhead2011 #:
в пределах цикла сработает только выход из него

Понял, спасибо! Есть какие то другие пути подняться вверх внутри данного цикла?

hellhead2011 #:

ну так оператор так в цикле и не будет работать -

Мне не нужно ВНУТРЬ, я хочу в пределах ЭТОГО ЖЕ цикла подняться выше.

Sly32 #:
Если вы учитесь, то за такое бьют линейкой по рукам, если вам действительно нужно парсить, освойте нормальные инструменты типа селениума или BS

Понятно что готу плохо и т.п. Но почему не срабатывает?

adouz #:

У меня сейчас 25 000 медицинского трафика в сутки, РСЯ насыпает 500-700 руб. в среднем с 6-ти блоков)) А вчера выдал целых 837 руб !

С 35.000мед трафа 2 блока Адсенс приносят 40$ (3000 р). РСЯ снял уже как год... это себя не уважать держать эти блоки когда они так в наглую воруют.

livetv #:

Сюда 

curl_setopt($ch, CURLOPT_POSTFIELDS, $array);

нужно отправлять строку, а не массив.

$ch = curl_init('https://www.immowelt.de/liste/getlistitems');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'query=geoid%3D10814285250%26etype%3D2%26esr%3D1%26sort%3Drelevanz&offset=4&pageSize=4');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$html = curl_exec($ch);
curl_close($ch);

echo $html;

Не помогло... и туда можно отправлять массив https://www.php.net/manual/ru/function.curl-setopt.php

Этот параметр может быть передан как в качестве url-закодированной строки, наподобие 'para1=val1&para2=val2&...', так и в виде массива, ключами которого будут имена полей, а значениями - их содержимое. 
ArbNet #:

ТС по ходу в вложенном цикле определял данные, но не обнулял буфер(переменную которую я обычно называю автобус), поэтому у него эти данные суммировались. Инкапсуляция тут никаким боком 🤔

Так и есть - переменные определялись внутри цикла и на каждой итерации писались в базу.

Странность для мня по сути вот в чем - если на данной итерации в переменную не приходило данных (парсер не находил инфы на странице), то я ожидал что переменная станет пустой, а она оставалось со значением из прошлой итерации.

придумал, отвечаю по традиции сам себе

$re = '~^(.*)((([А-ЯA-Z]|[А-ЯA-Z][\x27а-яa-z]{1,}|[А-ЯA-Z][\x27а-яa-z]{1,}\-([А-ЯA-Z][\x27а-яa-z]{1,}|(оглы)|(кызы)))\040[А-ЯA-Z][\x27а-яa-z]{1,}(\040[А-ЯA-Z][\x27а-яa-z]{1,})?))$~muU';
$str = 'Усов Василий Николаевич
Смелянский Александр Юрьевич
Ооо "МираторгБелгород" Прохоров Владимир Иванович
Якушев Михаил Вячеславович
Шильников Александр Сергеевич
Скляренко Виктор Владимирович
Попов Александр Иванович
КОЛХОЗА Товстяк Владимир Васильевич
Бигас Анатолий Степанович
Высоцкий Николай Семенович
Чефранов Михаил Эдуардович
ЛИКВИДАТОР Помельников Юрий Михайлович
Ооо "Ук ПродимексСахар" Данькевич Григорий Николаевич
ИСПОЛНЯЮЩИЙ ОБЯЗАННОСТИ ГЕНЕРАЛЬНОГО А Астахов Анатолий Николаевич
Управляющий Фоминов Василий Иванович
Управляющий Ретунский Алексей Иванович
Быковец Людмила Сергеевна
Жабин Сергей Викторович
Камолин Александр Валерьевич
Школлер Роман Александрович
Головин Максим Валентинович
';
$subst = '$2';

$result = preg_replace($re, $subst, $str);

echo "The result of the substitution is ".$result;
С появлением http2 это уже несколько лет не актуально
ArbNet #:

Смотреть вариант 1.

Прописал перед определением каждой переменной в цикле присвоение ей пустоты (очищаю каждую переменную при итерации) и все глюки пропали.

Было так

$full_name = addslashes(trim($pq->find('.c2m')->find('p')->find('a:eq(0)')->text()));

стало так

$full_name = '';
$full_name = addslashes(trim($pq->find('.c2m')->find('p')->find('a:eq(0)')->text()));
ArbNet #:

Тут два варианта:

Скрипт написал я. Значит описанное мной предположение невозможно? Переменные затираются при каждой итерации даже пустотой?

Всего: 6928