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 :: извлечь html теги

 PHP.SU

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


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

> Описание: извлечь html теги
OrmaJever
Отправлено: 15 Июля, 2010 - 17:20:42
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Помогите извлечь html теги со страницы. например надо взять весь тег <form > </form>
Первое что пришло в голову
CODE (htmlphp):
скопировать код в буфер обмена
  1. '#<form(.*)>(.*)</form>#i'

потом подумал так
CODE (htmlphp):
скопировать код в буфер обмена
  1. '#(?<=<form)(.*)>(.*)(?=</form>)#i'

но не могу понять какие символы надо экранизировать?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Champion Супермодератор
Отправлено: 15 Июля, 2010 - 18:05:33
Post Id



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


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


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




#<form[^>]*>(.+?)<\/form>#msi
 
 Top
OrmaJever
Отправлено: 15 Июля, 2010 - 20:18:41
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Спасибо! Все работает. Можешь в двух словах обьяснить что находит (.+?) и чем отличается от (.*) ?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Champion Супермодератор
Отправлено: 15 Июля, 2010 - 20:34:04
Post Id



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


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


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




+ - 1 и больше имволов
* - 0 и больше.
+? - меняет жадность. Просто + сматчит до последнего </form, а нежадный + - до ближайшего
 
 Top
JustUserR
Отправлено: 16 Июля, 2010 - 01:23:52
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




OrmaJever пишет:
Что находит (.+?) и чем отличается от (.*) ?
Данные квантификаторы имеют разную жадность и отличаются между собой порядком поиска по шаблону - при проходе по регулярному выражению жадная версия квантификатора захватывает максимальное число символов которое может - а нежадная захватывает минимально--разрешенное для свой формы число символов Тем не менее обе версии квантификаторов несмортря на свои предпочтения все-таки желают совпадения всего шаблона больше чем собственного - и поэтому при дальнейшем проходе жадный квантификатор по очереди возвращает по одному символу а нежадный напротив забирает Таким образом в процессе отдачи и получения символов жадный и нежадный квантификатор соответственно действуют с разных сторон - а искомое совпадение при просмотре с разных сторон как правило получается разным


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 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