Ho bisogno di prendere due blocchi di testo con tag html e renderizzare un confronto: unire i due blocchi di testo e quindi evidenziare cosa è stato aggiunto o rimosso da una versione alla successiva.Come mostrare un confronto di 2 blocchi di testo html
ho usato la classe PEAR Text_Diff a rendere con successo il confronto di pianura testo, ma quando provo a lanciare il testo con tag html in esso, diventa brutto. A causa della parola e degli algoritmi di confronto basati sui caratteri usati dalla classe, i tag html si rompono e finisco con cose brutte come <p><span class="new"> </</span>p>
. Si massacra l'html.
C'è un modo per generare un confronto di testo preservando il markup html originale valido?
Grazie per l'aiuto. Ci sto lavorando da settimane: [
Questa è la soluzione migliore che potessi pensare: trovare/sostituire ogni tipo di tag html con 1 carattere speciale non standard come il logo apple (opt shift k), rendere il confronto con questo tipo di markdown primitivo, quindi ripristinare i caratteri non standard in tag. Qualche feedback?
Il token find/replace unicode è ciò che ha funzionato alla fine. Ho appena fatto un key => array di valori con ogni tag di apertura e chiusura e il suo carattere unicode associato. Quindi ho generato il confronto e invertito il token/tag swap. –
Ho anche trovato che lo script Simple Diff di Paul Butler funziona molto meglio per il testo lungo rispetto al pacchetto PEAR. PEAR focalizzato parola per parola mentre la configurazione di Butcher ha prodotto un risultato migliore con le differenze rimanenti raggruppate come stringhe. Link: http://github.com/paulgb/simplediff/blob/5bfe1d2a8f967c7901ace50f04ac2d9308ed3169/simplediff.php –
Ciao @SteveG., Che tipo di unicode hai usato? Perché se viene trattato con "\\ u123" o "% 3C" per "<" alcuni algoritmi di diff non considerano la stessa parola. E se mappo usando i tasti solo con numeri come lettere, come posso garantire che non entrerà in conflitto con qualcos'altro sulla parte di testo di html? Grazie! http://i.imgur.com/OAJUAP1.png – Luccas