Autor Zpráva
krteczek
Profil
Mám takovéto regulární výrazy použité ve funkci preg_replace();

$text=preg_replace("#\"(.*[^\"])\"\:(https?://|ftps?://)(.*[^ ]) #Ui"," <a href=\"\\2\\3\" title=\"\\1\">\\1</a> ",$text);
$text=preg_replace("#( https?://| ftps?://)(.*[^ ]) #UI"," <a href=\"\\2\\3\" title=\"\\1\">\\1</a> ",$text);
$text=preg_replace("#\"(.*[^\"])\"\:(www.)(.*[^ ]) #Ui"," <a href=\"http://\\2\\3\" title=\"\\1\">\\1</a> ",$text);
$text=preg_replace("#( www.)(.*[^ ]) #Ui"," <a href=\"http://\\1\\2\" title=\"\\1\\2\">\\1\\2</a> ",$text);

Ano, jde o převod adres na odkazy.
Ale mám takovýto problém:
Potřebuji ošetřit text který se vkládá mezi > a </a> tak, aby v něm nebyla slova delší než například 25 znaků [třeba použít wordwrap()], ale nějak mne nenapadá jak to udělat, protože u preg_replace() při přepisu nelze použít další funkce...
krteczek
krteczek
Profil
Tak už jsem na to přišel, jde to pomocí preg_replace_callback();
Později dodám podrobnosti :-)
krteczek
Retal
Profil
Lze použít další funkce pro dynamickou úpravu nahrazujících řetězců, viz modifikátor "e".
Toto téma je uzamčeno. Odpověď nelze zaslat.

0