Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с регулярными выражениями

 PHP.SU

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


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

> Без описания
eter4
Отправлено: 01 Февраля, 2013 - 19:44:29
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




Ребята, нужно выбрать все формы из HTML-кода. Есть вот такая функция
PHP:
скопировать код в буфер обмена
  1. function GetFormsFromHTML($html){//получаем все формы из выбранного нами HTML-кода
  2.         $pattern = "/^\<[form]{4,}[a-zA-Z0-9]\>[a-zA-Z0-9]\<\/[form]{4,}\>$/";
  3.                        
  4.         preg_match($pattern,$html,$forms);
  5.                        
  6.         return $forms;
  7.         }

Но почему то возвращается пустой массив. Где ошибка?
 
 Top
esterio
Отправлено: 01 Февраля, 2013 - 19:48:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




PHP:
скопировать код в буфер обмена
  1. preg_match('/<form.*?>(.+?)<\/form>/', $html,$forms);
 
 Top
eter4
Отправлено: 01 Февраля, 2013 - 20:13:57
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




esterio пишет:
PHP:
скопировать код в буфер обмена
  1. preg_match('/<form.*?>(.+?)<\/form>/', $html,$forms);

Не получается Недовольство, огорчение
Если
PHP:
скопировать код в буфер обмена
  1. $html = "<div><br><hr><form method="POST" action=""><input type="text"><input type="submit"></form></div><br><hr>"

То все нормально, а если в переменную попадает результат функции file_get_contents() то возвращается пустой массив.
Что делать?
 
 Top
jobsdata
Отправлено: 01 Февраля, 2013 - 23:04:00
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Март 2012  
Откуда: Москва


Помог: 0 раз(а)




если не ошибаюсь file_get_contest() просто читает файл и не возвращает массив. Может использовать просто функцию file() ?
 
 Top
eter4
Отправлено: 01 Февраля, 2013 - 23:19:22
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




jobsdata пишет:
если не ошибаюсь file_get_contest() просто читает файл и не возвращает массив. Может использовать просто функцию file() ?

Нет, в данном случае мы читаем HTML код с чужого сайта. И эта функция возвращает HTML код страницы.
Массив мы должны получить функцией

(Отредактировано автором: 01 Февраля, 2013 - 23:20:34)

 
 Top
DelphinPRO
Отправлено: 01 Февраля, 2013 - 23:28:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




PHP:
скопировать код в буфер обмена
  1. preg_match('#<form.*>(.*)</form>#Usi', $html,$forms);
  2. var_dump($forms[0]);

(Добавление)
точнее вот так:
PHP:
скопировать код в буфер обмена
  1. preg_match_all('#<form.*>(.*)</form>#Usi', $html, $forms, PREG_PATTERN_ORDER);
  2. var_dump($forms[0]);

(Отредактировано автором: 01 Февраля, 2013 - 23:33:11)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
eter4
Отправлено: 02 Февраля, 2013 - 07:20:11
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




DelphinPRO пишет:
PHP:
скопировать код в буфер обмена
  1. preg_match('#<form.*>(.*)</form>#Usi', $html,$forms);
  2. var_dump($forms[0]);

(Добавление)
точнее вот так:
PHP:
скопировать код в буфер обмена
  1. preg_match_all('#<form.*>(.*)</form>#Usi', $html, $forms, PREG_PATTERN_ORDER);
  2. var_dump($forms[0]);

Благодарю! Все получилось.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB