- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema strano con str_replace
-
Problema strano con str_replace
Ciao a tutti,
mi si sta presentando uno strano problema con str_replace, ovvero:
nel database ho, ad esempio, del testo con un'immagine che ha questo percorso: <img src = "images /stories /mia-foto . jpg">
Con str_replace voglio modificare il percorso relativo in uno assoluto, altrimenti poi, quando vado a caricare quel testo in una pagina ben precisa, l'immagine non si vede; quindi procedo con:$MioContenuto = str_replace('src="images', 'src="http :// www . miosito .it/ gestione / images', $MioContenuto);
(ovviamenti gli spazi sono per evitare che la stringa sia vista come link!)
Il fatto strano è che inizialmente funziona e le immagini si vedono.
Dopo un pò non funziona più e sembra che il php non riesca più a fare la sostituzione.
In alcune pagine su qualche immagine funziona e su altre no... Eppure è l'identito codice!
E' una cosa che ho sempre utilizzato e ha sempre funzionato, ma adesso invece fa i capricci. Può dipendere forse da qualche impostazione del Server? (sono su Register)
Un esempio di pagina è questo:
http :// www . see-tech .it/ demo/ FOGNATURA/ spurgo-fognature-e-scarichi-domestici.phpLa bandiera inglese nel testo centrale si vede; le due immaginine a fianco no.. Eppure è lo stesso medesimo codice...!!
Grazie,
cordiali saluti
-
Ciao delizard,
hai provato a visualizzare il contenuto di $MioContenuto?
Nel caso non fermati a vedere solo quello che ti da a video ma guarda il sorgente pagina.Facci sapere.
-
Ciao Samyorn,
grazie dell'attenzione.
Certo si, il contenuto l'ho controllato; ho controllato anche dentro il campo del database. Tutto giusto.
La cosa strana è che appena ho messo online quelle pagine le immagini si vedevano, il giorno dopo no.. è questa la cosa veramente strana che non riesco a comprendere...Se qualunque cosa può aiutarvi a capire chiedete pure!
Grazie,
ciao!
-
Banalmente, andando a vedere il sorgente, il percorso non punta ad un file utile, controlla il percorso e/o il nome del file immagine.
-
Ciao,
il sorgente non punta al file proprio perchè il php non agisce... Non funzionando lo "str_replace" viene lasciato il percorso che esce dal database e dunque sbagliato! E' proprio lì il problema.
Io devo intervenire con lo "str_replace" sul percorso dell'immagine per modificarlo in modo che punti al file correttamente..Mi sono spiegato bene oppure oramai, essendo dentro al problema non riesco a comunicarvelo in modo corretto?
Ditemi se è così cercherò di fare del mio meglioGrazie e ciao!
-
Sicuro che sul Db non venga salvato come src="images ?
-
Ciao,
ti allego immagine che riproduce i campi del db con evidenziato il punto dell'immagine.E poi immagino che se il db salvasse con lo slash allora non dovrebbe funzionare neanche la visualizzazione dell'immagine nell'articolo centrale, e invece lì l'immagine si vede... E il codice php è identico.
Non riesco veramente ad uscirci!
ciao e grazie!
PS: l'immagine non me la fa allegare, ti scrivo qua sotto l'indirizzo:
http : // www . millestanze . it / campo-db . jpg
-
Hai provato a scrivere su un file di testo il contenuto di $MioContenuto prima dello str_replace?
Vedi se magari esce fuori qualcosa.P.S. A parte il problema, ti consiglierei vivamente di non permettere il salvataggio di tag, apici e virgolette sul Db, sei a fortissimo rischio di Injection,
-
Ciao, posso provare a suggerirti di usare una sostituzione con regular expression per tagliare la testa al toro e vedere se funziona ?
[PHP]$MioContenuto = preg_replace("#src[ ]?=[ ]?"[ /]*?images#is", "src="http .. miosito ../gestione/images", $MioContenuto);[/PHP]
Ho specificato un pattern di ricerca più elastico, nel qual caso vi sia qualche spazio o altro che sballa il matching dello str_replace, ricorda di sostituire l'url giusta dove ho scritto "http .. miosito .."
Fammi sapere come va
-
edit
-
mi inchino Black
Pare funzionare perfettamente... Sono in debito
Grazie infinite a tutti per il supporto!
ciao!