Autor | Zpráva | ||
---|---|---|---|
TFSi Profil * |
#1 · Zasláno: 24. 11. 2006, 15:25:47
Ahoj,
přidal jsem si na své diskuzn fórum jednoduché formátování po vzoru diskuzních fór phpBB (a nejen jich). Nyní jsem ale narazil na jeden problém: s regulerními výrazy si moc nerozumím a to co jsem vypotil mi nic nenahrazuje. V historii diskze jsem nic použitelného nenašel. Pomůžete mi, prosím? Můj výplod: preg_replace('/\[b\](.*)\[\/b\]/', '<strong>$1</strong>', $q['text']); Předem dík za jakoukoliv pomoc BTW: snažím se o to, aby jeden reg. výraz nahrazoval obě značky, tedy i za <b> a </b>, a ne každou zvlášť ... |
||
Nox_lbc Profil |
#2 · Zasláno: 24. 11. 2006, 15:27:52
1) REGULÁRNÍ VÝRAZY
2) http://www.regexp.cz/ |
||
k Profil * |
#3 · Zasláno: 24. 11. 2006, 15:32:39
TFSi
Jestli si ten regularni vyraz vypotil opravdu ty, tak by ti to co potrebujes udelat nemelo delat problem. |
||
Retal Profil |
#4 · Zasláno: 24. 11. 2006, 17:17:26
Vždyť to máš skoro správně. Funguje to, pokud je na jednom řádku nejvýše jeden nalezený výraz. Aby ti to fungovalo obecně, přidej ještě modifikátory s (dot all) a U (ungreedy) (vysvětlení viz manuál).
preg_replace('/\[b\](.*)\[\/b\]/sU', '<strong>$1</strong>', $test) |
||
TFSi Profil * |
#5 · Zasláno: 24. 11. 2006, 19:23:26
Tak všem mockrát děkuju, problém nebyl ani tak ve výrazu, jako spíš v lidském faktoru. Přece jenom, je rozdíl mezi
preg_replace('/\[b\](.*)\[\/b\]/', '<strong>$1</strong>', $q['text']); a $forated = preg_replace('/\[b\](.*)\[\/b\]/', '<strong>$1</strong>', $q['text']);. Omlouvám se, ale holt se občas stane i v lepších rodinách =) To Retal: vidíš, sU mě nenapadlo. Využiju to. Díky To k: inspiroval jsem se manuálem, "kompletace" je mé dílo. A jak vidíš, opravdu to fungue...teda pokud neudělám botu někde jinde. =) To Nox_lbc: 1) É, Á, to považuju za drobný detail, který nemá na správnou funkci žádný vliv. Já ríkám regulÉrní, prtože mě občas regulérně se*ou ;) 2) možná tak www.regularnivyrazy.info, regexp.cz je v mám případě celkem k ničemu, testovat výrazy můžu i na localu. |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0