вопрос по формату preg_replace

postovik

Новичок
вопрос по формату preg_replace

Есть код(см. ниже), который вырезает теги, javascript и т.д. с текста. В конечно итоге остается чистый текст.
Как сделать так, чтобы исключались ссылки, т.е. чтобы в конечно итоге остался текст+ссылки?
Перерыл мануалы - ничего подходящего найти не могу :(


PHP:
$search = array ("'<script[^>]*?>.*?</script>'si",  // Вырезается javascript
                 "'<[\/\!]*?[^<>]*?>'si",           // Вырезаются html-тэги
                 "'([\r\n])[\s]+'",                 // Вырезается пустое пространство
                 "'&(quot|#34);'i",                 // Замещаются html-элементы
                 "'&(amp|#38);'i",
                 "'&(lt|#60);'i",
                 "'&(gt|#62);'i",
                 "'&(nbsp|#160);'i",
                 "'&(iexcl|#161);'i",
                 "'&(cent|#162);'i",
                 "'&(pound|#163);'i",
                 "'&(copy|#169);'i",
                 "'&#(\d+);'e");                    // вычисляется как php

$replace = array ("",
                  "",
                  "\\1",
                  "\"",
                  "&",
                  "<",
                  ">",
                  " ",
                  chr(161),
                  chr(162),
                  chr(163),
                  chr(169),
                  "chr(\\1)");

$text = preg_replace ($search, $replace, $document);
 

Acabar

Новичок
ну так ты подумай сам. У тебя есть подсказка: "'<script[^>]*?>.*?</script>'si"
 

postovik

Новичок
Автор оригинала: Acabar
ну так ты подумай сам. У тебя есть подсказка: "'<script[^>]*?>.*?</script>'si"
Для меня это подсказка может быть только в плане, как удалить определенный тег, подсказки , как исключить удаление для меня здесь нету.
 

Acabar

Новичок
$text = preg_replace("'<a href=\"(.*?)\">(.*?)</a>'si", "\\1 \\2", $text);

-~{}~ 24.04.06 20:58:

не забудь прочитать в faq регулярные выражения и в статьях тоже. Так как этот форум не создан для того чтобы спрашивать одно и тоже и то что 100 раз обсуждалось.
 

postovik

Новичок
Автор оригинала: Acabar
$text = preg_replace("'<a href=\"(.*?)\">(.*?)</a>'si", "\\1 \\2", $text);

-~{}~ 24.04.06 20:58:

не забудь прочитать в faq регулярные выражения и в статьях тоже. Так как этот форум не создан для того чтобы спрашивать одно и тоже и то что 100 раз обсуждалось.
"\\1 \\2" меняю на "<A HREF=\\1> \\2</A>",
Кроме того, это все хорошо, но строка "'<[\/\!]*?[^<>]*?>'si", которая вырезает html-тэги всеравно удаляет ссылки
 

Acabar

Новичок
ой, тут надо помозговать, <[\/\!]*?[^<>]*?>'si в этой строке надо поставить чтоб он исключал тот случай, если есть один символ "а" вначале и не перерабатывал, а как? я вникать не хочу...попробуй сам помозгуй. Есть статьи, есть faq, есть книги...думай сам.
 
Сверху