Вырезание текста из <textarea></textarea>

h2all

Новичок
Вырезание текста из <textarea></textarea>

Здравствуйте.
Есть текст
<html><body><textarea><a href=howdy.html>me</a></textarea><br><textarea>!!</textarea></body></html>.

на www.pcre.ru нашел пример
PHP:
$text = '<item>Какой-то текст</item>';
$data = array();

preg_match('|<item>(.*)</item>|Uis', $text, $out);
Впринципе он подходит, но в тексте может быть как <textarea></textarea>, так и <TEXTAREA ></Textarea>
Подскажите, как можно выкрутится?
 

Фанат

oncle terrible
Команда форума
на www.pcre.ru должно быть описано, что делать в таких случаях.
посмотри повнимательнее
 

h2all

Новичок
Разобрался. Получилоь так:
preg_match_all('|<textarea[ ]*>(.*)</textarea[ ]*>|Uis', $html, $out);
 

AlexBB

Новичок
Убедитесь еще, что никогда не встречаются конструкции типа
<textarea class="blabla">
и тому подобные ... теоритически могут быть
 

phprus

Moderator
Команда форума
h2all
Более универсально будет:
preg_match_all('|<textarea.*?>(.*?)</textarea.*?>|Uis', $html, $out);
? после * - это квантификатор жадности. Что это такое прочитай тут: http://ru.php.net/manual/ru/reference.pcre.pattern.syntax.php
Если убрать ? то твое выражение найдет все то, что находится между первым в документе <textarea> и самым последним </textarea>, а это явно не то, что тебе надо.
 

bkonst

.. хочется странного?...
phprus
Не путай человека, у него все правильно - после выражения стоит модификатор 'U'.
 

phprus

Moderator
Команда форума
bkonst
Блин. Все очки надо менять. Я не заметил этот модификатор.

Сори за написаное несовсем правильной информации.

В моем же выражении для того, чтобы сделать его правильным надо убрать модификатор U.
 
Сверху