- Home
- Categorie
- Coding e Sistemistica
- PHP
- Trasformare alcune parole in link
-
Trasformare alcune parole in link
Ho un testo in una stringa e ho delle parole in una tabella del database.
Devo sostituire tutte le parole del testo che sono uguali a quelle che ci sono nel database in link.
Per esempio, nel database c'è la parola "ciao" e il testo è "Ciao, come va?" che diventerà "<a href="link.php?id=1">ciao</a>" ("1" è un valore che c'è in una altro campo della stessa tabella).
Per fare una cosa del genere basterebbe la funzione str_replace, ma i problemi arrivano quando nel testo è già presente un link.
Per esempio, nel database c'è la parola "Italia" e il testo è "W gli <a href="http ://it.wikipedia.org/wiki/Actinopterygii_in_Italia">Actinopterygii in Italia</a>!" che non dovrebbe creare il link per la parola "Italia" perché è già inclusa in un link e ce ne è pure una dentro al tag a.
Penso che dovrei utilizzare la funzione preg_replace ma le espressioni regolari non sono il mio forte. Qualcuno mi saprebbe dare una mano?
-
UP!
-
puoi provare a sostiuire "ciao " nei link non c'è lo spazio e non hai quel problema
-
Non ho capito cosa vuoi dire.
-
se io scrivo ciao marco
posso sostiuire "ciao " quindi ciao seguito dallo spazio in un url non trovi mai ciao seguito dalla spazio
-
Ma se nel testo c'è "ciao," il tuo sistema non funziona.
-
devi usare per forza le espressioni regolari...
mi spiace però non poterti essere più d'aiuto... ma non saprei realizzare una regex per il tuo scopo...ciao!
-
Infatti lo avevo già scritto nel primo messaggio. Mi serve aiuto proprio lì.