PHP.SU

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

Страниц (1): [1]

> Найдено сообщений: 6
xmax Отправлено: 29 Мая, 2015 - 09:33:59 • Тема: Парсинг в массив из <table> • Форум: Вопросы новичков

Ответов: 4
Просмотров: 292
GoDr пишет:
xmax пишет:
p было случайно вставлено/оставлено от более полной строчки. Но оно не влияло.
что значит не влияло??? Тебе же явно сказали про это
Цитата:
Warning: preg_match_all(): Unknown modifier 'p' in /


xmax пишет:
Еще вопрос, как делать что бы он USERID в массив добавлял? Сейчас получается на выходе пустой массив =(
Если получается пустой массив, значит регулярка не работает! Ты бы дал с пяток строк для тренировки. Вроде тебе нужна помощь, а сам жадничаешь с вводными данными

PHP:
скопировать код в буфер обмена
  1. <tr class\='row_0'\>
  2.         <td > </td\>
  3.         <td ><a href\='/profile\.php\?id\=1328' class\='user ' \>user1</a\> </td\>
  4.         <td >100</td\>
  5.         <td > </td\>
  6. </tr\>
  7. <tr class\='row_0'\>
  8.         <td > </td\>
  9.         <td ><a href\='/profile\.php\?id\=183' class\='user ' \>user2</a\> </td\>
  10.         <td >100</td\>
  11.         <td > </td\>
  12. </tr\>
  13. <tr class\='row_0'\>
  14.         <td > </td\>
  15.         <td ><a href\='/profile\.php\?id\=4702' class\='user ' \>user3</a\> </td\>
  16.         <td >1200</td\>
  17.         <td > </td\>
  18. </tr\>
  19. <tr class\='row_0'\>
  20.         <td > </td\>
  21.         <td ><a href\='/profile\.php\?id\=9377' class\='user ' \>user4</a\> </td\>
  22.         <td >67</td\>
  23.         <td > </td\>
  24. </tr\>

Это после прохождения через preg_quote()
xmax Отправлено: 29 Мая, 2015 - 00:35:18 • Тема: Парсинг в массив из <table> • Форум: Вопросы новичков

Ответов: 4
Просмотров: 292
DelphinPRO пишет:
PHP:
скопировать код в буфер обмена
  1. preg_match_all("~href\='/profile.php\?id\=([^']*)'~p", $statpage, $res);

(Добавление)
в вашем случае регулярка воспринимается примерно так

Потому что первый символ в регулярке - ограничительный, и встретив второй такой, остальные, следующие за ним, будут считаться модификаторми, а не частью выражения.
Можно сменить ограничители на такие, которые не встречаются в регулярном выражении, либо экранировать ограничитель внутри выражения.
(Добавление)
кстати, а что за модификатор p вы поставили? Я кажется не знаю о таком. Его нужно убрать.
Спасибо, сдвинулось вроде дело и пошел массив. Сейчас разгребу его.
p было случайно вставлено/оставлено от более полной строчки. Но оно не влияло.
(Добавление)
Еще вопрос, как делать что бы он USERID в массив добавлял? Сейчас получается на выходе пустой массив =(
xmax Отправлено: 28 Мая, 2015 - 21:39:20 • Тема: Парсинг в массив из <table> • Форум: Вопросы новичков

Ответов: 4
Просмотров: 292
Уважаемые пользователи. Прошу помочь.
Следующая ситуация:
Имеется на сайте таблица. Ее парсинг проходит на отлично.
В таблице имеются строки с некоторыми данными.
Наприме имеется ссылка вида:
CODE (html):
скопировать код в буфер обмена
  1. <a href='/profile.php?id=USERID' class='user'>USERNAME</a>

Как мне обработать эту полученную страницу, чтобы извлечь всех пользователей(порядка 20-40 в зависимости от времени).
с помощью:
PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match_all("/href\='/profile.php\?id\=(.*)'/p", $statpage, $res);
  3.  

не получается. Ругается так:
Цитата:
Warning: preg_match_all(): Unknown modifier 'p' in /

Стоит preg_quote($statpage), но все равно ругается на $statpage

Может есть какой-то другой способ?
И как правильнее с массивом поступать?

Спасибо.
xmax Отправлено: 18 Июля, 2014 - 10:54:59 • Тема: Парсинг и обработка результата • Форум: Вопросы новичков

Ответов: 5
Просмотров: 327
DelphinPRO пишет:
первый и второй параметр в preg_match_all поменяйте местами. Саныч ошибся малёк Улыбка

Update поста произошел. Поправил сразу почти. А вот что дальше с массивом происходит...(
xmax Отправлено: 18 Июля, 2014 - 09:55:04 • Тема: Парсинг и обработка результата • Форум: Вопросы новичков

Ответов: 5
Просмотров: 327
Саныч пишет:

выдает ошибку:
Цитата:
Warning: preg_match_all(): Unknown modifier ' ' in ...

Если поменять местами $html и '#data="(\d+)"#i', то ошибки нет.
Если делать print_r - выдает число 25(кол-во записей по идее).
Но когда делаешь implode(), появляется ошибка:
Цитата:
Warning: implode(): Invalid arguments passed in


Если просто вывести массив $matches, то 2 раза массив вида
Цитата:
( [0] => data='111222' [1] => data='222333' ... [24] => data-player='171571' )

и выдает его 2 раза. Делаешь count($matches) - выдает число 2.
xmax Отправлено: 16 Июля, 2014 - 00:39:23 • Тема: Парсинг и обработка результата • Форум: Вопросы новичков

Ответов: 5
Просмотров: 327
здравствуйте. В общем парсер работает, парист именно те данные со странички, которые нужны мне.
Но, увы, данные имеют такой вид:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div data="1122" class="member">...</div>
  3. <div data="33344" class="member">...</div>
  4. <div data="22314" class="member">...</div>
  5.  

и тд.

Вопрос: как можно заполучить из date эти числа? например в массив.

Заранее спасибо.

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB