[Php-it] [OT] editor via web -> espressioni regolari?
Mailinglist - Francesco Reitano
mailinglist at francescoreitano.it
Fri Oct 13 11:50:05 CEST 2006
Ciao raga, volevo un aiuto sulla logica di come funzionano gli editor di
cui si parla,
ho capito che usano un'area editabile nella quale si va ad inserire
testo html,
ma qual'è il motore che sta dietro?
Mi spiego meglio:
poniamo che io abbia la frase dentro l'area editabile di uno di questi
editor:
"ciao mamma! guarda come mi diverto!"
a questo punto seleziono la parte di frase
"guarda come mi diverto!"
clicco su bold e ottengo
"ciao mamma! *guarda come mi diverto!*"
vuol dire che ho preso la mia selezione "guarda come mi diverto!" e l'ho
sostituita con
"<b>guarda come mi diverto!</b>" e d ho quindi aggiunto il tag bold
all'inizio e la chiusura
del bold alla fine.
Fin qui tutto chiaro e anche abbastanza semplice da realizzare è un
semplice replace
della stringa selezionata.
Adesso la parte difficile:
seleziono "come mi" e riclicco sul tasto bold dovrei così ottenere:
"ciao mamma! *guarda* come mi *diverto!*"
come si fa? ho ipotizzato un uso abbastanza peso delle espressioni regolari!
cioè:
1) prendo la parte precedente alla mia selezione, e controllo se c'è un
tab bold aperto
e non chiuso, se c'è e ci sono dei testi dopo il tag bold aperto prima della
mia selezione chiudo il tag immediatamente prima della mia selezione,
nel mio
caso "<b>guarda" diventa "<b>guarda</b>
Se invece non ci sono testi prima tolgo il tag bold aperto.
2) prendo la parte successiva alla mia selezione e guardo se trovo un
tag bold
chiuso senza che prima ci sia un tag bold aperto con del testo precedete
al tag,
nel mio caso trovo "diverto!</b>"
se c'è mettò subito dopo alla mia selezione un tag bold aperto e quindi
diviene
"<b>diverto!</b>". Se trovo il tag bold chiuso senza testo precedente lo
rimuovo.
Secondo voi la logica è questa? esiste un metodo + semplice?
Altra domanda molto + pesa:
come faccio a distinguere il testo dai tag.
mi spiego meglio se al punto 2 prima del tag bold chiuso avessi trovato
un tag di paragrafo chiuso "</p>" o qualsiasi altro tipo di tag come facevo
a capire che non era testo ma un tag? perchè se è un tag e non un testo
non dovevo piazzare il tag bold aperto "<b></p></b>" ma rimuovere il tag
bold chiuso e ottenere "</p>" !!!
-------------- parte successiva --------------
Un allegato HTML ? stato rimosso...
URL: http://lists.ziobudda.net/pipermail/php-it/attachments/20061013/30ad3d29/attachment.htm
More information about the Php-it
mailing list