- Подробности
-
Категория: PHP. Синтаксис
Преобразование 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 '
';?>