Ik maak voor een cms gebruik van htmlarea (http://www.dynarch.com/htmlarea) Ik heb echter een probleem, de html die dit script uitpoept is niet zo mooi.
Met niet zo mooi wil ik zeggen dat hij alles op 1 regel achter elkaar zet, en ik ben iemand die vrij veel geeft om netjes uitgelijnde html zodat, als ik een keer neit met de wysiwyg html editer werk ik ook nette html krijg.
Aangezien het probleem van alles op 1 regel zetten in internet explorer zit (in Mozilla blijft de html wel gewoon mooi uitgelijnd) ben ik niet naar het javascript gaan kijken, maar begonnen met een php script.
Wat ik wil is het volgende
1; dat na bepaalde html tage (tr, td, table, div, font, p) en voor/na het openen van de php mode (<?) en natuurlijk na de php ; een nieuwe regel wordt geopend, dit is op zich gelukt
2; het overzichtelijk maken van tabellen
Dit is me tot nu toe nog niet gelukt
. Ik heb wel bedacht hoe het ongeveer kan, maar krijg dat niet omgezet naar php.
Vanaf een regel waar een <tr> of een <td> tegen wordt gekomen moeten 2 spaties worden toegevoegd, en vanaf elke regel waar een </td> of </tr> tegen wordt gekomen moeten er 2 spaties worden verwijderd.
De code die ik tot nu toe heb is (ongeveer, paar voor mij specifieke dingen verwijderd):
Op zich zal het me wel lukken om 2 spaties (of evt een tab) toe te voegen voor <tr> en </td> tags, maar om dat bij alle komende regels te doen gaat mij niet lukken...
Een mogelijk opzet zou misschien kunnen zijn om eerst alle regels in een array te zetten en vergens te kijken of de array een <td> of <tr> bevat en dan alle elementen van de array met een hogere index 2 spaties toevoegen, of bij </td> en </tr> de eerste 2 characters (die dan dus spaties zijn) laten verwijderen. Hier bleef ik echter steken aangezien het mij niet gelukt is om elke regel (gescheiden met \n) van een string in een array te zetten. (Dit verklaart ook mijn topictitel)
Met niet zo mooi wil ik zeggen dat hij alles op 1 regel achter elkaar zet, en ik ben iemand die vrij veel geeft om netjes uitgelijnde html zodat, als ik een keer neit met de wysiwyg html editer werk ik ook nette html krijg.
Aangezien het probleem van alles op 1 regel zetten in internet explorer zit (in Mozilla blijft de html wel gewoon mooi uitgelijnd) ben ik niet naar het javascript gaan kijken, maar begonnen met een php script.
Wat ik wil is het volgende
1; dat na bepaalde html tage (tr, td, table, div, font, p) en voor/na het openen van de php mode (<?) en natuurlijk na de php ; een nieuwe regel wordt geopend, dit is op zich gelukt
2; het overzichtelijk maken van tabellen
code:
1
2
3
4
5
6
7
| <table> <tr> <td> tekst </td> </tr> </table> |
Dit is me tot nu toe nog niet gelukt
Vanaf een regel waar een <tr> of een <td> tegen wordt gekomen moeten 2 spaties worden toegevoegd, en vanaf elke regel waar een </td> of </tr> tegen wordt gekomen moeten er 2 spaties worden verwijderd.
De code die ik tot nu toe heb is (ongeveer, paar voor mij specifieke dingen verwijderd):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <? $tekst = stripslashes($tekst); $tekst = ereg_replace("<\?", "\n<?\n", $tekst); $tekst = ereg_replace("\?>", "\n?>\n", $tekst); $tekst = ereg_replace('<br>', "<br>\n", $tekst); $tekst = preg_replace("#\<td(.*?)\>#si", "\n<td\\1>", $tekst); $tekst = preg_replace("#\<tr(.*?)\>#si", "\n<tr\\1>", $tekst); $tekst = preg_replace("#\<table(.*?)\>#si", "\n<table\\1>", $tekst); $tekst = preg_replace("#\<tbody(.*?)\>#si", "\n<tbody\\1>", $tekst); $tekst = preg_replace("#\</td(.*?)\>#si", "\n</td\\1>", $tekst); $tekst = preg_replace("#\</tr(.*?)\>#si", "\n</tr\\1>", $tekst); $tekst = preg_replace("#\</table(.*?)\>#si", "\n</table\\1>", $tekst); $tekst = preg_replace("#\</tbody(.*?)\>#si", "\n</tbody\\1>", $tekst); $tekst = preg_replace("#\<div(.*?)\>#si", "\n<div\\1>", $tekst); $tekst = preg_replace("#\</div(.*?)\>#si", "\n</div\\1>", $tekst); $tekst = preg_replace("#\<p(.*?)\>#si", "\n<p\\1>", $tekst); $tekst = preg_replace("#\</p(.*?)\>#si", "\n</p\\1>", $tekst); $tekst = preg_replace("#\<font(.*?)\>#si", "\n<font\\1>\n", $tekst); $tekst = preg_replace("#\</font(.*?)\>#si", "\n</font\\1>", $tekst); ?> |
Op zich zal het me wel lukken om 2 spaties (of evt een tab) toe te voegen voor <tr> en </td> tags, maar om dat bij alle komende regels te doen gaat mij niet lukken...
Een mogelijk opzet zou misschien kunnen zijn om eerst alle regels in een array te zetten en vergens te kijken of de array een <td> of <tr> bevat en dan alle elementen van de array met een hogere index 2 spaties toevoegen, of bij </td> en </tr> de eerste 2 characters (die dan dus spaties zijn) laten verwijderen. Hier bleef ik echter steken aangezien het mij niet gelukt is om elke regel (gescheiden met \n) van een string in een array te zetten. (Dit verklaart ook mijn topictitel)
De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!