Buongiorno a tutti.
Ho un bel database con tanto testo.
Prima dell'insert (scritto di proprio pugno dagli utenti e sono testi discorsivi) ovviamente prevedo di pulire un po' il testo e mi viene in aiuto le funzioni php come TRIM (rimuove gli spazi all'inizio ed alla fine), ma anche UCFIRST (prima lettera maiuscolo) ma anche pulizia da HTML con STRIP_TAGS.
Ma mica finisce qua.
Gli utenti scrivono di tutto e sarebbe bello fare un'insert poi nel DB di dati un minimo grammaticalmente corretti.
Allora mi sono messo lì ed ho cominciato a fare un'infinita lista di sostituzioni in:
-doppi spazi->1 spazio
-punteggiatura con spazi prima sostituiti in spazi dopo ("Vado al mare !Ne sono sicuro ." -> "Vado al mare! Ne sono sicuro. ")
-ma correggere le eccezioni dei punti di cui sopra (ad esempio ora i punti sospensivi sono diventati ". . . " da ricorreggere nei corretti "... ")
- rimuovere TAB
- dopo un punto o punto esclamativo intercettare il carattere (che ora è anche dopo uno spazio) e di nuovo maiuscolo
- e più vado avanti più mi capitano casi
ecc ecc
Dopo una decina di righe mi sono accorto che è un lavoro immenso di SUBSTR_REPLACE e non si finisce più e mi sembra di reinventare qualcosa che non è impossibile nessuno abbia mai fatto oltre al fatto che dopo una decina di righe di sostituzioni stupide mi chiedo se non esiste una funzione nativa PHP che già non lo faccia (o una libreria già pronta per i pigri come me).
Chiedo a voi se ne sapete qualcosa o devo farmi questi lunghissimi elenchi di sostituzioni.
Se comunque nulla esiste, ditemelo che quando ho raggiunto lo stato dell'arte, pubblico qua il mio frammento di codice così che almeno chi arriva dopo con lo stesso problema lo possa riutilizzare!
Grazie per l'attenzione.