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

Вадим

Guest
Регулярные выражения и замена подстрок.

Имеется следующий код:
// Нахождение в теле текста адреса электронной почты и преобразование ее в ссылку

if ( preg_match_all("/[a-zA-Z0-9_]+@[a-zA-Z0-9-]+\.[a-zA-Z]+/", $content, $array ) ){
foreach($array[0] as $item){
$content = str_replace ( $item, "<a href=mailto:".$item.">".$item."</a>", $content);}
}

Как все это добро заменить одной функцией, а то ведь подтормаживает даже на средних текстах (около 2-3кб).
И вообще какие конструкции наиболее оптимально использовать для нахождения замены подстрок.
 

Вадим

Guest
И снова я, но сдругой траблой. День сижу, а разобраться не могу. Суть проблемы такая: Есть: КУСОК :cool: текста в котом спрятаны html-теги отображения изображений. Нужно: повытаскивать все эти тэги с содержимым в массив и потом обработать ( в идеале конечно только адреса изображений). Подскажите как этого добиться.
 

Demiurg

Guest
Вадим
а что же с первым вопросом ? он резко стал неважным ?
 

Вадим

Guest
Автор оригинала: Demiurg
Вадим
а что же с первым вопросом ? он резко стал неважным ?
На самом деле предыдущий вопрос меня волнует ничуть не меньше, но этот вновь появившийся просто не дает покоя. Знакомая ситуация наерное, когда амбиции так и распирают и хочется понять все и побольше побольше:D

-~{}~ 26.07.04 23:29:

Автор оригинала: Dallas
Тут приведен интересующий тебя пример.
По тем рецептам я пробовал, но у меня что-то ничего не получилось. Я уже дошел до того что мен хотя бы любой текст между двумя тэгами вытащить ( между < и > ). А дальше думаю разобрался бы. Пока что сижу над такой штукой
preg_match_all("/(?<=\<)(модель???)(?=\>)/", $content_output[$i], $img_bottom);
Просто не знаю чего придумать.:mad:
 

Dallas

Guest
Ну, начни с этого:
PHP:
$string = "<asas>";
preg_match_all("/(?<=<)[as]*(?=>)/i", $string, $arr);
print_r($arr);
затем дополни ограничения на искомую модель.
 

Вадим

Guest
Спасибо за предыдущую подсказку.
Но вот появилась следующая трабла.
Задача:
нужно найти в тексте адреса (ссылки) вида http://www.adres.ru или www.adres.ru и заменить их соответствующими тэгами.
Что получается:
С виду получается все хорошо, но вот в коде что-то вроде этого: <a href=link>link</a><a href=http://[пусто]>[пусто]</a> В зависимости от совпавшей схемы.
Вопрос: как сделать чтобы выводилась ссылка в зависимости от совпавшей модели?

$var= preg_replace("/(http:\/\/[a-zA-Z0-9_.]+\.[a-z]{0,4})|(www\.[a-zA-Z0-9_.]+\.[a-z]{0,4})/", "<a href=\\1>\\1</a><a href=http://\\2>\\2</a>", $var);
 
Сверху