PHP.SU

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

Страниц (4): [1] 2 3 4 »

> Найдено сообщений: 47
Facecontrol Отправлено: 12 Ноября, 2021 - 19:39:34 • Тема: Нужна помощь с регуляркой • Форум: Регулярные выражения

Ответов: 15
Просмотров: 5839
Пробовал сделать так
CODE (htmlphp):
скопировать код в буфер обмена
  1. preg_match_all('~\*{5} 888poker Hand History for Game.+?\$2\.70 \+ \$0\.30.+?collected\h\[[^]]+\]~s', $r, $w);

Не получилось оно находит всё равно и текст с $2.70 + $0.30 и текст с $0.90 + $0.10
Facecontrol Отправлено: 07 Ноября, 2021 - 16:04:30 • Тема: Нужна помощь с регуляркой • Форум: Регулярные выражения

Ответов: 15
Просмотров: 5839
Появился новый вопрос.
Есть регуярка
CODE (htmlphp):
скопировать код в буфер обмена
  1. preg_match_all('~\*{5} 888poker Hand History for Game.+?collected\h\[[^]]+\]~s', $r, $w);


И есть файл с текстом например
Спойлер (Отобразить)

и текстом например
Спойлер (Отобразить)


Мне нужно чтоб регулярка как-то распознала где в тексте есть
CODE (htmlphp):
скопировать код в буфер обмена
  1. ***** 888poker Hand History for Game"любое значение" $2.70 + $0.30"любое значение" collected [любое значение ]

От текста где есть
CODE (htmlphp):
скопировать код в буфер обмена
  1. ***** 888poker Hand History for Game"любое значение" $0.90 + $0.10 "любое значение" collected [любое значение ]

И чтобы текст где есть ($2.70 + $0.30) писался в одну переменную, а текст где присутствует ($0.90 + $0.10) писался в другую переменную.
Как это составить регуляркой?
Facecontrol Отправлено: 08 Января, 2021 - 00:33:36 • Тема: Нужна помощь с регуляркой • Форум: Регулярные выражения

Ответов: 15
Просмотров: 5839
Строитель пишет:
Facecontrol пишет:
при загрузке больших файлов там какое то время ожидания вроде настраивается. Что то вроде этого.
Цитата из доки:
По умолчанию максимальный размер загружаемого файла для скриптов PHP составляет 128 мегабайт. Однако вы можете изменить эти ограничения. Например, вы можете установить нижний предел, чтобы пользователи не могли загружать большие файлы на ваш сайт. Для этого измените директивы upload_max_filesize и post_max_size. Ну а время выполнения скрипта можно установить без ограничения: set_time_limit(0);


Спасибо огромное!!!
Facecontrol Отправлено: 08 Января, 2021 - 00:16:27 • Тема: Нужна помощь с регуляркой • Форум: Регулярные выражения

Ответов: 15
Просмотров: 5839
Строитель пишет:
Facecontrol, массив же двухуровневый, значит надо и циклов два:
Спойлер (Отобразить)

Ок спасибо. А подскажи ещё такой вопрос. Что сделать чтоб грузило файлы большого размера. Помню когда то были проблемы, при загрузке больших файлов там какое то время ожидания вроде настраивается. Что то вроде этого.
Facecontrol Отправлено: 08 Января, 2021 - 00:04:02 • Тема: Нужна помощь с регуляркой • Форум: Регулярные выражения

Ответов: 15
Просмотров: 5839
Строитель пишет:
Facecontrol пишет:
Например строка=> выборка
Ну и print_r() будет печатать в браузере некую "служебную" информацию вида array( ... ). Для чистого вывода в браузер используйте цикл foreach(){}.



Белый флаг
Ага попытался.

PHP:
скопировать код в буфер обмена
  1. $r = file_get_contents('1.txt');
  2. preg_match_all('~\*{5} 888poker Hand History for Game.+?collected\h\[[^]]+\]~s', $r, $w);
  3.  foreach ($w as $value) {
  4. echo "$value<br>";
  5. }


Выдало
Array

Не понял Радость
Facecontrol Отправлено: 07 Января, 2021 - 23:47:38 • Тема: Нужна помощь с регуляркой • Форум: Регулярные выражения

Ответов: 15
Просмотров: 5839
Строитель пишет:
Facecontrol пишет:
Вроде бы через print_r() или нет?
Да. Ну или как в примере выше var_dump($w);

Тогда оно будет выводить в таком стиле
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(1) { [0]=> array(134) { [0]=> string(1098) "***** 888poker Hand History for Game 646168446 ***** 800/1,600 Blinds No Limit Holdem - *** 29 12 2020 03:38:03 Tournament #172727773 Free - Table #494 9 Max (Real Money) Seat 9 is the

А нужно чтоб информация была в чистом виде. Например строка=> выборка
Facecontrol Отправлено: 07 Января, 2021 - 23:41:44 • Тема: Нужна помощь с регуляркой • Форум: Регулярные выражения

Ответов: 15
Просмотров: 5839
Строитель пишет:
Facecontrol пишет:
Ок а использовать её типо так?
Без модификатора g, в php роль этого модификатора лежит на preg_match_all()
Спойлер (Отобразить)


Ну и ещё может понадобится для поиска большего количества вариантов подправлять шаблон.



Ок. Спасибо работает. А как теперь вывести в браузер все найденые вхождения. Вроде бы через print_r() или нет?
Facecontrol Отправлено: 07 Января, 2021 - 22:52:57 • Тема: Нужна помощь с регуляркой • Форум: Регулярные выражения

Ответов: 15
Просмотров: 5839
Строитель пишет:


Ок а использовать её типо так?
PHP:
скопировать код в буфер обмена
  1. preg_match_all('~\*{5} 888poker Hand History for Game.+?collected\h\[[^]]+\]~gs', $r, $w);


Извини за глупый вопрос. Честно уже не помню как раньше это делал.
Facecontrol Отправлено: 07 Января, 2021 - 16:59:37 • Тема: Нужна помощь с регуляркой • Форум: Регулярные выражения

Ответов: 15
Просмотров: 5839
Здравствуйте! Помогите пожалуйста составить регулярку. Я раньше кое как составлял их но сейчас всё забыл, а восстанавливать знания к сожалению нет времени. В общем есть текстовый файл такого содержания.
Спойлер (Отобразить)



Мне нужно разделить файл так чтобы осталось всё что начинается на
CODE (htmlphp):
скопировать код в буфер обмена
  1. ***** 888poker Hand History for Game

и заканчивается на
CODE (htmlphp):
скопировать код в буфер обмена
  1. collected [ любое значение$ ]


То есть
Спойлер (Отобразить)

Значения могут быть разными, но нужно оставить всё что похоже на выражение выше, а остальное удалить
Facecontrol Отправлено: 20 Февраля, 2020 - 21:51:20 • Тема: Помогите пожалуйста с curl • Форум: Вопросы новичков

Ответов: 5
Просмотров: 442
Всё равно так и не нашёл решения проблемы. Можете показать нагляднее?
(Добавление)
Пробовал так.
CODE (htmlphp):
скопировать код в буфер обмена
  1. $url1="https://m.vten.ru/";
  2. $curl=curl_init();
  3. curl_setopt($curl, CURLOPT_URL, $url1);
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  5.  
  6. curl_setopt($curl, CURLOPT_COOKIEFILE, __DIR__ . '/cookie.txt');
  7. curl_setopt($curl, CURLOPT_COOKIEJAR, __DIR__ . '/cookie.txt');
  8. curl_setopt($curl, CURLOPT_USERAGENT, 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36');
  9.  
  10. curl_setopt($curl, CURLOPT_HEADER, true);
  11. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  12.  
  13. $site1=curl_exec($curl);
  14. curl_close($curl);
  15. echo $site1;
  16.  


Не помогло
Facecontrol Отправлено: 19 Февраля, 2020 - 05:58:53 • Тема: Помогите пожалуйста с curl • Форум: Вопросы новичков

Ответов: 5
Просмотров: 442
Vladimir Kheifets пишет:
Facecontrol пишет:
Почему-то не могу спарсить сайт с помощью curl вот код.
PHP:
скопировать код в буфер обмена
  1. $url1="https://m.vten.ru/";
  2. $curl=curl_init();
  3. curl_setopt($curl, CURLOPT_URL, $url1);
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  6. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  7. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  8. $site1=curl_exec($curl);
  9. echo $site1;

Что я делаю не так?

Добрый день!
Добавил option

echo $site1 выдал:
Цитата:
HTTP/1.1 304 Server: nginx Date: Tue, 18 Feb 2020 18:08:12 GMT Connection: keep-alive

Wikipedia:
Цитата:
304 Not Modified — сервер возвращает такой код, если клиент запросил документ методом GET,
использовал заголовок If-Modified-Since или If-None-Match и документ не изменился с указанного момента.
При этом сообщение сервера не должно содержать тела. Появился в HTTP/1.0.

Удачи!



Спасибо за ответ. Только я не понимаю что мне с этим дальше делать, как решить проблему?
Facecontrol Отправлено: 18 Февраля, 2020 - 18:11:23 • Тема: Помогите пожалуйста с curl • Форум: Вопросы новичков

Ответов: 5
Просмотров: 442
Почему-то не могу спарсить сайт с помощью curl вот код.
PHP:
скопировать код в буфер обмена
  1. $url1="https://m.vten.ru/";
  2. $curl=curl_init();
  3. curl_setopt($curl, CURLOPT_URL, $url1);
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  6. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  7. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  8. $site1=curl_exec($curl);
  9. echo $site1;

Что я делаю не так?
Facecontrol Отправлено: 25 Августа, 2019 - 00:54:38 • Тема: Помогите с регуляркой. • Форум: Регулярные выражения

Ответов: 8
Просмотров: 2293
Вообщем как говорится начали за здравие...
Проблема ещё одна получилась. Вообщем ссылку грубо говоря получил, правда обрезанную, но дело в другом, я хотел спарсить график.
PHP:
скопировать код в буфер обмена
  1. $url2="http://www.tenisinfo.eu/graph.php?a0=0|-3|-6|-3&a1=0|3|6|9|12|15|18|21|24|21|24|21|24&p1_name=Jeong%20Sunam&p12_name=%20&p2_name=Lee%20Eunhye%20(2000)&p22_name=%20&lng=1";
  2. $curl2=curl_init();
  3. curl_setopt($curl2, CURLOPT_URL, $url2);
  4. curl_setopt($curl2, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($curl2, CURLOPT_FOLLOWLOCATION, 1);
  6. curl_setopt($curl2, CURLOPT_SSL_VERIFYPEER, false);
  7. curl_setopt($curl2, CURLOPT_SSL_VERIFYHOST, false);
  8. $site2=curl_exec($curl2);
  9. echo $site2;
  10.  

Но почему то мне ничего не выдает, пустой экран.
Думал может защита какая на сайте от парсинга, так нет главную то парсит, а вот отдельно график не хочет.
Скрин графика внизу.
Facecontrol Отправлено: 24 Августа, 2019 - 19:16:58 • Тема: Помогите с регуляркой. • Форум: Регулярные выражения

Ответов: 8
Просмотров: 2293
Строитель пишет:
Facecontrol
PHP:
скопировать код в буфер обмена
  1. $str = '------MultipartBoundary--CqGdqQdT9jiN5WLQOzH0PQkxSRcsu3VF8bpoIirWRp----
  2. Content-Type: text/html
  3. Content-ID: <frame-2DC98E9F5D0CA541324C92011400F005@mhtml.blink>
  4. Content-Transfer-Encoding: binary
  5. Content-Location: http://www.tenisinfo.eu/graph.php?a0=0|-3|-6|-3&a1=0|3|6|9|12|15|18|21|24||24|21|24&p1_name=Jeong%20Sunam&p12_name=%20&p2_name=Lee%20Eunhye%20(2000)&p22_name=%20&lng=1';
  6.  
  7. $patt = '~Content-Location: http://\S+~';
  8. $url = preg_match($patt, $str, $url) ? $url[0] : '';
  9.  
  10. echo $url;


спасибо вам большое. Получилось почти то что я хотел, но единственное уточнение, я может неправильно высказал что хотел бы получить.
Дело в том что Content-Location: http:// может быть множество, понятное дело выбираю их через preg_match_all()
Но мне возвращает массив типо Content-Location: http://любая последовательность символов.
А мне нужно выбрать именно Content-Location: http://www.tenisinfo.eu/graph.php?a0=0|-3|-6|-3&a1=0|3|6|9|12|15|18|21|24|21|24|21|24&p1_name=Jeong%20Sunam&p12_name=%20&p2_name=Lee%20Eunhye%20(2000)&p22_name=%20&lng=1";
И заметил я то что есть один Content-Location: http://www[dot]tenisinfo[dot]eu/graph.php?a0=
А после равно уже может иди любая последовательность символов. Стоит. Вопрос как организовать чтоб скрипт находил именно такой вариант ссылки?
(Добавление)
О походу нашел как $patt = '~http://www.tenisinfo.eu/graph.php\?a0=\S+~';
(Добавление)
Но не пойму в чём причина, как будто обрезает ссылку
Возвращает
www[dot]tenisinfo[dot]eu/graph.php?a0=0|[dot][dot][dot]mp;p1_name=Jeong
Хотя должно быть так
www[dot]tenisinfo[dot]eu/graph.php?a0=0|[dot][dot][dot]me=%20&lng=1
Facecontrol Отправлено: 24 Августа, 2019 - 00:22:17 • Тема: Помогите с регуляркой. • Форум: Регулярные выражения

Ответов: 8
Просмотров: 2293
LIME пишет:
это xml
Какие регулярки
Все уже структурированно
(Добавление)
А вообще у Котерова "php в подлиннике" наверное самое дохобчивое объяснение для старта. Отдельно главу можно прочитать

Ладно извини, просто я совсем малость изучал php и html Ито давно, а вот сейчас для своих нужд надо скрипт написать один вот и сижу туплю. Сейчас попробую понять как воспользоваться твоим советом. Правда я не совсем понял как это сделать.
(Добавление)
Что то я все равно не пойму как это организовать. Я только с помощью регулярки пытаюсь, xml для меня вообще темный лес, в первый раз с ним столкнулся.
Но и регуляркой тоже не так то и просто. Понял что с этого участка
Спойлер (Отобразить)


Нужно выдернуть вот эту ссылку
http://www[dot]tenisinfo[dot]eu/graph[dot]ph[dot][dot][dot]me=%20&lng=1

Пытался с помощью регулярки, но так как я мега спец. Ничего не вышло.
Спойлер (Отобразить)


Помогите пожалуйста мне буду очень признателен.

Вот если что большая часть кода откуда нужно выдернуть.
Спойлер (Отобразить)

Страниц (4): [1] 2 3 4 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB