[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