textarea для ввода пользователем регулярного выражения.

[Удален]
678

Делаю плагин, в котором пользователь должен иметь возможность ввести в окно регулярное выражение.

Допустим регулярное выражение (в чистом виде) выглядит так:

$reg='/<div[^<]*?(class=[\'"]name1|id=[\'"]name1)(.*?)>/i'

Первая проблема возникает с обратным слешем. Когда на странице выводится textarea:

<textarea id="regtocutmaindiv" NAME="regtocutmaindiv" cols="70" rows="1" wrap="virtual"><?php echo $reg;?></textarea>

в нем выводится следующая строка регулярного выражения:

/<div[^<]*?(class=['"]post|id=['"]post)(.*?)>/i

Таким образом обратный слеш теряется. Не помогает даже предварительная замена одного слеша двумя:

$reg=str_replace("\\","\\\\",$reg);

Единственное решение, которое я вижу - это замена обратного слеша какой нибудь своей служебной строкой. А у вас какие мысли?

[umka]
На сайте с 25.05.2008
Offline
456
#1
в нем выводится следующая строка регулярного выражения:

Так у вас всё правильно выводится.

Именно так и выглядит в чистом виде регулярное выражение, которое вы записываете в $reg

[umka] добавил 20.02.2010 в 11:58

только в html его следует выводить как

echo htmlspecialchars($reg);

… чтоб глюков не было

Лог в помощь!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий