Problém s regulárními výrazy
3 příspěvky
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Ahojky všichni, potřeboval bych objasnit problém výše zmíněné problematiky. V textaree javascriptem umožňuji uživateli zadat URL odkazu včetně jeho textu, což v reále vypadá: [a][/a]{http://} ... kde mezi [a] a [/a] se zadá text odkazu a do složených závorek potom samotná URL. Řeším to potom v PHP přes ereg_replace(): $q = "(\[a\])(.+)(\[/a\])(\{)([[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/])(\})"; $a = "<a href=\"\\5\" class=\"text\">\\2</a>"; $aktualita = ereg_replace($q, $a, $aktualita); Vše takto funguje a po vygenerování se skutečně v textu zobrazí odkaz jako text, který uživatel zadal. Problém nastává, pokud se v tom samém textu zadají do textarey odkazy dva (i více). V tu chvíli je po vygenerování PHP odkaz sloučen ze všech do jednoho, resp. od prvního k poslednímu, jestli m rozumíte, něco ve stylu: 1.odkaz[/a]{http://www.seznam.cz} nějaký text mezi odkazama [a]2.odkaz , kde se po vygenerování zobrazí tato věta jako jeden odkaz...
-
Muzes napriklad nahradit (.+) takovym vyrazem, kde nesmi byt napriklad lomitko ([^/]+) - timto "zastavis" zravou vlasnost..
-
Super, díky moc, funguje to...