Есть некий текст, в котором встречаются фразы типа "А не сходить ли тебе на http://site.com ?". Задача: Сделать все слова, похожие на ссылки, html-ссылками, т.е. преобразовать текст примера вот так: "А не пойти ли тебе на <a href=http://site.com>http://site.com ?</a>". После линии идет полный код программы. $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}(([ "'>rnt])|(\/([^ "'>rnt]*)?)))/", $buf,$url); echo "
1. В тексте было найдено:"; for($i=0; $i echo "".$url[2][$i]."n"; echo " "; // 2 // echo "
2. Замена текста-ссылки на html-код прямо в тексте:"; $x=explode(" ",$buf); for ($j=0; $jif (preg_match ("/(http:\/\/)?([a-z_0-9-.]+\.[a-z]{2,3}(([ "'>rnt])|(\/([^ "'>rnt]*)?)))/", $x[$j],$ok)) echo str_replace($ok[2],"$ok[2]", str_replace("http://","",$x[$j]))." "; else echo $x[$j]." "; }
echo ' '; ?> Готово.
|