Autor Zpráva
zdenek
Profil *
Vytvořil jsem r.v., který by měl převést url na odkaz a zkrátit ho na určitý počet znaků. Zároveň by se měla zkrátit dlouhá slova. Celé znění má být vidět po najetí myši nad zkrácený odkaz nebo slovo. Protože s r.v. začínám, tak bych se chtěl zeptat, zdali je použitelný v praxi.
$text = preg_replace('~(http://|ftp://|(www\.))([\w-]*.[\w-.]*([/?][^\s]*)?)|( \S{50,})~e','(strlen("\5") > 50 ?"<span title=\5>".(substr("\5", 0, 50))."...</span>" : "\5<a href=".("\1"=="www."?"http://":"\1")."\2\3 title=".("\1"=="www."?"http://":"\1")."\2\3>".((strlen("\1\3")>50)?(su bstr("\1\3",0,50)."..."):"\1\3")."</a>")',$text);
zdenek
Profil *
Udělal jsem ještě pár drobných úprav a potřeboval bych poradit s tím, jak zabezpečit, aby nešlo opakovat například několik teček, čárek apod. v textu za lomítkem, protože to by se asi nemělo v url vyskytovat.
$text = preg_replace('~(http://|ftp://|(www.))([\w]+([\.-][\w]+)*\.\w{2,4}(?:/ |\b)(?:[^,. ][^\s]*[^,. ])?)|(\S{41,})~e','(strlen("\5") >= 41 ?"<span title=\"\5\">".(substr("\5", 0, 40))."...</span>" : "<a href=\"".("\1"=="www."?"http://":"\1")."\2\3\" title=\"".("\1"=="www."?"http://":"\1")."\2\3\">".((strlen("\1\3")>=41)?(substr("\1\3",0,40)."..."):"\1\3")."</a>")',$text);

Toto téma je uzamčeno. Odpověď nelze zaslat.