Autor | Zpráva | ||
---|---|---|---|
gmvasek Profil * |
#1 · Zasláno: 11. 7. 2007, 21:38:54
Dobrý den,
programuji si CMS v PHP a zrovna řeším nahrazování BBCode značek. Značnou část již mám ošetřenou regulárními výrazy, ale potřeboval bych pomoct s funkcí preg_replace_callback. Mám 4 regulární výrazy, které pracují s URL: // Anchors Ten třetí nahrazuje adresy v textu (http://...) odkazy. A ten mi právě dělá problém. Nahrazuje i adresy převedené do tagů a pak vzniká zmatek. Chtěl jsem to vyřešit pomocí preg_replace_callback, že bych další funkcí kontroloval, jestli je předaný výraz v uvozovkách či nikoliv. Ale tady mám problém. Nemám možnost dosadit do té funkce další parametr s odkazem na kód, takže nemám v čem hledat. Zkoušel jsem i global na různých místech, create_function, ale nic nepomáhá. Ke kódu se prostě nedostanu (v $resource je ten kód). Poradíte? Zdroj funkce: function preved($retezec) |
||
bukaj Profil |
#2 · Zasláno: 11. 7. 2007, 21:50:23 · Upravil/a: bukaj
moc nechápu, co vlastně chceš. ale nešel by poupravit ten regulární výraz? například pomocí tzv. záporného (či kladného) tvrzení o předchozím (popř. následujícím)? viz speciální závorkové konstrukce
|
||
gmvasek Profil * |
#3 · Zasláno: 11. 7. 2007, 22:21:23
To jsem zkoušel, ale pak došlo ke zmodifikování výsledku... viz. http://regexlib.com/RETester.aspx?regexp_id=1363
Zkuste si to zmodifikovat výrazy [^"] nebo (?!") přidáním na začátek nebo na konec.... |
||
gmvasek Profil * |
#4 · Zasláno: 12. 7. 2007, 07:28:22
Potřebuji se dostat k promněnné $page, kterou volám jako parametr funkce bbcodes. Pak mám další funkci (preved), které funkce preg_replace_callback předává řetězec odpovídající regulárnímu výrazu jako parametr. A z té funkce se nedostanu do promněnné $page.
|
||
Časová prodleva: 17 let
|
0