Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Извлечь из текста все <input.....$input_name....>
 
 автор: Stop&Go   (17.10.2005 в 12:37)   письмо автору
 
 

в тексте нужно найти тег input у которого известно имя - $input_name, т.е. нужна строка вида <input.....$input_name....>
сколько и каких символов между "<input" и $input_name, а также между $input_name и ">" - неизвестно.

более-менее приближенный результат у меня получилось получить выражением:
$reg_vir="/<input[\/\!]*?[^<>]*.*".$input_name.".*?>/i";

но при таком выражении захватывается лишнее поле input, предшествующее искомому, т.е. на выходе получаю <input......><input.....$input_name....>

кто в курсе - хелп!

   
 
 автор: cheops   (17.10.2005 в 13:06)   письмо автору
 
   для: Stop&Go   (17.10.2005 в 12:37)
 

Можно воспользоваться выражением вида
<?php 
  $input_name 
'\$input_name';
  
$text 'в тексте нужно найти тег input у которого известно имя - $input_name, т.е. нужна строка вида <input.....$input_name....>
сколько и каких символов между "<input" и $input_name, а также между $input_name и ">" - неизвестно.'
;

  
$pattern '|<input[^>]+'.$input_name.'[^>]+>|is';
  
preg_match_all($pattern,$text,$out,PREG_PATTERN_ORDER);
  foreach(
$out[0] as $line)
  {
    echo 
htmlspecialchars($line)."<br>";
  }
?>


PS Вопросы, посвящённые регулярным выражениям лучше сразу размещать в форуме "Регулярные выражения"

   
 
 автор: Stop&Go   (17.10.2005 в 23:15)   письмо автору
 
   для: cheops   (17.10.2005 в 13:06)
 

спасибо!

правда преведенный пример не отлавливает <input.....$input_name>
переделал на:
/<input[^>]+".$matches[1].".*?>/

еще раз спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования