Все ленты — последние статьи

Преобразование URL в теги

Преобразование URL в теги

Автор: Дмитрий Бородин

Есть некий текст, в котором встречаются фразы типа "А не сходить ли тебе на http://site.com ?".

Задача: Сделать все слова, похожие на ссылки, html-ссылками, т.е. преобразовать текст примера вот так: "А не пойти ли тебе на http://site.com ?".

После линии идет полный код программы.

 

$buf="

http://любая.мура

sadkjfjkas dfkjasdf ajksd fjkdsfh jksdf kasjdfh kjdfjksdaf

asfdasd.fklja sdfk.jaas kasldf.jaskldjfls.kadjfkls.dfjaklsdf

1 www1.ru

2 www2.ru/123/123

3 PHP.SPB.RU

4 www.php.spb.ru

5 www.123.456.ru/1234/asd#tip-top

6 http://www.ru

7 http://www.ru/123/123

8 http://php.spb.ru

9 http://www.php.spb.ru

10 HTTP://www.dmitry.spb.ru/nado/ftp/?icq2000b.exe (скачать новую Асю :-)

11 dmitry.spb.ru

BAD

BAD234579324875.12312

BAD.q

www.BAD.rrrr

www.BAD.123

";

echo "Имеется текст:

$buf

";// 1 //

$buf=strtolower($buf);

preg_match_all

("/(http:\\/\\/)?([a-z_0-9-.]+\\.[a-z]{2,3}(([ \"'>\r\n\t])|(\\/([^ \"'>\r\n\t]*)?)))/",

$buf,$url);

echo "

1. В тексте было найдено:

";

for($i=0; $i

echo "".$url[2][$i]."\n";

echo "

";// 2 //

echo "

2. Замена текста-ссылки на html-код прямо в тексте:

";

$x=explode(" ",$buf);

for ($j=0; $j

if (preg_match

("/(http:\\/\\/)?([a-z_0-9-.]+\\.[a-z]{2,3}(([ \"'>\r\n\t])|(\\/([^ \"'>\r\n\t]*)?)))/",

$x[$j],$ok))

echo str_replace($ok[2],"$ok[2]",

str_replace("http://","",$x[$j]))." ";

else

echo $x[$j]." ";

}

echo '

';?>