Ik heb een klein probleempje met mijn WYSIWYG editor openWYSIWYG. Het produceert geen xHTML code. Nu ben ik aant proberen om de html uit de text te filtreren en dat dan lowercase te maken maar dat lukt me niet echt helemaal. Kan iemand me helpe met een regex/andere oplossing om de html lowercase te maken.
PHP:
1
| $output = preg_replace_callback('|<[/a-z]+|i', create_function('$matches', 'return strtolower($matches[0]);'), $input); |
Hier voor kan je een callback functie voor gebruiken.
[ Voor 17% gewijzigd door glashio op 25-07-2007 09:03 ]
> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing
Wat heb je zelf al geprobeerd?shoarmaboer21 schreef op woensdag 25 juli 2007 @ 08:52:
Ik heb een klein probleempje met mijn WYSIWYG editor openWYSIWYG. Het produceert geen xHTML code. Nu ben ik aant proberen om de html uit de text te filtreren en dat dan lowercase te maken maar dat lukt me niet echt helemaal. Kan iemand me helpe met een regex/andere oplossing om de html lowercase te maken.
Zit je vast aan die html editor? TinyMCE kan wel xhtml output geven.
Eventuele client side oplossing: http://html2xhtml.richarea.com/
glashio: je vergeet dingen als attributen en andere syntax-zaken die XHTML syntax doen afwijken van klassieke HTML syntax.
Ik denk dat het werken met string-functies om XML-syntax te genereren een echte no-no is. Mijn advies zou zijn: parsen naar een DOM-tree en vervolgens serializen naar XHTML.
De grote vraag is echter: heb je dat ook echt nodig?shoarmaboer21 schreef op woensdag 25 juli 2007 @ 08:52:
Het produceert geen xHTML code.
Ik denk dat het werken met string-functies om XML-syntax te genereren een echte no-no is. Mijn advies zou zijn: parsen naar een DOM-tree en vervolgens serializen naar XHTML.
[ Voor 21% gewijzigd door crisp op 25-07-2007 09:11 ]
Intentionally left blank
Verwijderd
Soms ben je gewoon te slim voor ons, gewone stervelingencrisp schreef op woensdag 25 juli 2007 @ 09:09:
[..]
Ik denk dat het werken met string-functies om XML-syntax te genereren een echte no-no is. Mijn advies zou zijn: parsen naar een DOM-tree en vervolgens serializen naar XHTML.
Hoewel ik al enkele jaren actief bezig ben met clientside scripting, versta ik alleen de werkwoorden en lidwoorden in bovenstaande zin.
Zal wel aan mij liggen
Vertaling van crisp:
Maak de bewerking naar XHTML niet door te proberen de HTML zélf aan te passen (zoals je hem in tekstvorm kan zien dus). Dat is enorm foutgevoelig en in het algemeen geen goed idee. In plaats daarvan doe je dat door de HTML te parsen naar een DOM-tree (een boomstructuur dus waarin alle elementen hun plek hebben) en deze tree vervolgens weer op te slaan in de vorm van XHTML. Een voorbeeld van hoe een DOM tree eruit ziet krijg je als je deze pagina in FireFox bekijkt en dan de functie Tools | DOM Inspector uit het menu kiest.
Dat vind ik zelf ook veruit de eleganste manier, maar je moet dan natuurlijk wel netjes je HTML parsen naar een nette XML DOM tree, anders krijg je er nooit nette XHTML uit.
@Crisp: ik hoop dat ik je intentie goed heb weergegeven
edit:
Met een beetje geluk kan je in je PHP gewoon de tree opbouwen met loadHTML op een nieuw DomDocument object, even een paar elementen wat aanpassen (juiste doctype en namespace enzo), en daarna een saveXML. Het verschil tussen HTML en XHTML is zoals eerder aangegeven wel iets groter dan alleen upper en lower case.
Maak de bewerking naar XHTML niet door te proberen de HTML zélf aan te passen (zoals je hem in tekstvorm kan zien dus). Dat is enorm foutgevoelig en in het algemeen geen goed idee. In plaats daarvan doe je dat door de HTML te parsen naar een DOM-tree (een boomstructuur dus waarin alle elementen hun plek hebben) en deze tree vervolgens weer op te slaan in de vorm van XHTML. Een voorbeeld van hoe een DOM tree eruit ziet krijg je als je deze pagina in FireFox bekijkt en dan de functie Tools | DOM Inspector uit het menu kiest.
Dat vind ik zelf ook veruit de eleganste manier, maar je moet dan natuurlijk wel netjes je HTML parsen naar een nette XML DOM tree, anders krijg je er nooit nette XHTML uit.
@Crisp: ik hoop dat ik je intentie goed heb weergegeven
edit:
Met een beetje geluk kan je in je PHP gewoon de tree opbouwen met loadHTML op een nieuw DomDocument object, even een paar elementen wat aanpassen (juiste doctype en namespace enzo), en daarna een saveXML. Het verschil tussen HTML en XHTML is zoals eerder aangegeven wel iets groter dan alleen upper en lower case.
[ Voor 24% gewijzigd door ATS op 25-07-2007 18:16 ]
My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant
Volgens mij pakt mijn host dat niet.
Nu zou ik eigenlijk alleen willen weten hoe je de tekst uit de HTML haalt. Dan kun je gewoon strtolower doen. Zelfs dat lukt mij niet.
Dus eigenlijk een
Nu zou ik eigenlijk alleen willen weten hoe je de tekst uit de HTML haalt. Dan kun je gewoon strtolower doen. Zelfs dat lukt mij niet.
Dus eigenlijk een
PHP:
1
| preg_replace('>{tekst met alle mogelijke tekens}<','> <',$string); |
[ Voor 23% gewijzigd door BlackWhizz op 25-07-2007 18:52 ]
Misschien kan je beter mijn eerste vraag beantwoorden: waarom denk je XHTML nodig te hebben?
Intentionally left blank
Voor mijn portfolio site. Het ziet er gewoon niet uit als je bijvoorbeeld html op een xhtml pagina zet terwijl je klanten probeert te werven.
Ik zou zeggen: wacht tot openWYSIWYG wel XHMTML doet (het staat op de lijst van toe te voegen features, er wordt dus aan gewerkt) of, nog beter, help ze mee om dat voor elkaar te krijgen. Het is tenslotte open source. Achteraf met het resultaat geen kloten lijkt mij geen handige of onderhoudbare oplossing, maar dat is al eerder gezegd. Ik denk niet dat het je gaat lukken om van de output goede XHTML te maken met alleen een regexp of twee.
My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant
Pagina: 1