|
|
|
| в тексте нужно найти тег input у которого известно имя - $input_name, т.е. нужна строка вида <input.....$input_name....>
сколько и каких символов между "<input" и $input_name, а также между $input_name и ">" - неизвестно.
более-менее приближенный результат у меня получилось получить выражением:
$reg_vir="/<input[\/\!]*?[^<>]*.*".$input_name.".*?>/i";
но при таком выражении захватывается лишнее поле input, предшествующее искомому, т.е. на выходе получаю <input......><input.....$input_name....>
кто в курсе - хелп! | |
|
|
|
|
|
|
|
для: 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 Вопросы, посвящённые регулярным выражениям лучше сразу размещать в форуме "Регулярные выражения" | |
|
|
|
|
|
|
|
для: cheops
(17.10.2005 в 13:06)
| | спасибо!
правда преведенный пример не отлавливает <input.....$input_name>
переделал на:
/<input[^>]+".$matches[1].".*?>/
еще раз спасибо! | |
|
|
|