• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto Sostituire parola tramite form

AnonyTrack

Utente Attivo
Autore del topic
16 Gennaio 2012
410
56
Miglior risposta
0
Ciao a tutti.

Sto creando una specie di form che sostituisce delle parole, come una specie di traduttore o se vogliamo anche un censuratore.

Il costrutto l'ho già fatto, il problema è che le parole che voglio sostituire sono in abbondanza.
Tramite le array ho fatto questo:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Con questo pezzetto di codice, che funziona, sostituisco le parole che trova nelle array.
Ma se volessi in quantità enorme inserire tante parole, mi verrebbe complicato metterle tutte in due righe, ovvero la parola da ricercare e quella con cui si sostituisce.

Come potrei fare in altro modo? Magari con più array o direttamente da un database, tipo con due colonne parola e censura.

Grazie.
 
Si, la soluzione che hai proposto con l'uso del db è la migliore... Il modo più semplice (ma non più efficiente) è creare una tabella con parole da cercare e rispettive sostituzioni e poi caricare la tabella nei due array che utilizzi tu... Un modo meno "sprecone" è caricare solo le sostituzioni necessarie a senconda della frase che viene presentata...
 
Potresti fare una cosa più semplice per velocizzare la procedura, ovvero invece di creare due campi di database in cui cercare una parola con la sua sostituzione, indicare ogni parola da sostituire sempre con la medesima parola, ad esempio test con censura, prova con censura, ecc. così eviti alla macchina di fare la ricerca in due gruppi di parole ma in uno solo.

Puoi fare anche una cosa che fanno programmi ad hoc che praticamente prendono ogni parola da censurare e ne tengono solo il primo e l'ultimo carattere sostituendo gli altri con asterischi, che so prova diventa p***a.

Se poi vuoi proprio creare un sistema di sotituzione come quello da te proposto ti consiglio di creare un array in cui le chiavi sono le parole da censurare e i valori quelle in sostituzione, e poi lo dai in pasto alla funzione
Perfavore, Entra oppure Registrati per vedere i Link!
.
Ad esempio estratto un array di parole da censurare da un database, trasformi la stringa così:
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Tieni pure conto che tutto questo discorso è invalidato dalle parole scomposte, ad esempio nessuno mi vieta di scrivere fan cool in luogo di fancool e tu non la trovi più la frase da censurare.
Ovviamente esiste una soluzione ma non è facilmente implementabile perché prevederebbe anche una analisi lessicale e una grammaticale per ogni parola della frase passata per poter provare tutte le varianze della parola cercata ( fancool, fan cool, fan co ol, f a n c o o l, ecc. ) alla fine non ne esci più.