Autor | Zpráva | ||
---|---|---|---|
MartyK Profil * |
#1 · Zasláno: 24. 11. 2006, 14:08:33
Dobry den,
v guestbooku automaticky prepisuju text, ktery zacina na http://neco na odkaz. Pouzivam nasledujici regularni vyraz a funkci ereg_replace: ereg_replace('(.*)(http:\/\/[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}[-_~&=\?\. \%a-zA-Z0-9\/\-\#]*)(.*)', '\\1<a href="\\2"> odkaz </a>\\3', $text); Problem je v tom, ze kdyz se v textu objevi vice "http://neco" prepise jen prvni na odkaz, ostatni zustavaji nedotcene. Chtel bych, aby to prepisovalo vsechny "http://neco". Predem dekuji moc za odpoved. |
||
jonge Profil |
#2 · Zasláno: 24. 11. 2006, 14:32:23
Ereg_replace je (co jsem četl) ze všech regulárů nejpomalejší. Používej preg_replace:
<?php $text = "Strana: http://www.seznam.cz/ nebo http://www.centrum.cz/"; $text = preg_replace("/(http:\/\/www\.[-a-zA-Z0-9]+\.[a-zA-Z0-9]+)/", "<a href=\"$1\">$1</a>", $text); echo $text; ?> Toto mi funguje. Zkus si to upravit podle tvého vzoru. |
||
Retal Profil |
#3 · Zasláno: 24. 11. 2006, 17:07:51
jonge
A co když ten regexp narazí na osvícené správce, kteří nepoužívají "www"? :) |
||
k Profil * |
#4 · Zasláno: 24. 11. 2006, 17:14:51
staci aby odkaz vedl na subdomenu.
http://www.seznam.cz/moje-auto to taky nepobere. |
||
jonge Profil |
#5 · Zasláno: 24. 11. 2006, 17:58:21
Tak jsem ti to trochu upravil... snad už si to upravíš víc sám.
<?php $text = "Strana: http://www.seznam.cz/ nebo http://www.centrum.cz/"; $text = preg_replace("/(http:\/\/www\.|www\.|http:\/\/)/", "http://www.", $text); $text = preg_replace("/(http:\/\/[\.\-_a-zA-Z0-9]+\.[-a-zA-Z0-9]+\.[-_~&=\?\.\ %\/\-\#a-zA-Z0-9]+)/", "<a href=\"$1\">$1</a>", $text); echo $text; ?> |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0