Ho una pagina codificata in UTF-8 che deve mostrare un'immagine che una lettera accentata nel nome che ha solo lettere minuscole, numeri e trattini.
Io immetto il codice html in questo modoIn $pagina c'è quello che per me è una stringa uguale a quella del nome dell'immagine, ricavata facendo diventare minuscole le lettere del titolo e mettendoci i trattini.codice:echo '[img]/img/'.$pagina.'.jpg[/img]';
Adesso accade che:
1) Se chiamo l'immagine "artù.jpg", questa non appare nella pagina ed aprendola in un'altra scheda appare il messaggio "La pagina ***/img/art.jpg non è presente";
2) Se la chiamo "art%C3%B9.jpg" mi esce lo stesso identico messaggio di prima;
3) Allora tengo il nome come al punto 2) e provo a scrivere il codice con urlencode($pagina) ed ancora non va;
4) Provo a scrivere urlencode(urlencode($pagina))e stavolta va! Apro l'immagine in un'altra scheda ed ha nome "art%25C3%25B9.jpg".
Quindi è un po' come se, quando l'immagine reale viene presa per il confronto con la variabile, il nome viene come encodato e gli % risultano diventati %25 (e così si va da %C3%B9 a %25C3%25B9) e lo stesso risultato si ottiene encodando due volte la stringa $pagina.
Però adesso, facendo file(url-immagine), per quanti urlencode io metta, fallisce tutto e questo è strano perché lo stesso non accadeva per i nomi degli articoli che venivano presi in modo simile, ossia con file('articoli/'.urlencode($pagina).'.txt').
Davvero non capisco le differenze di comportamento tra queste due entità e sono convinto che quei due urlencode() non siano la via giusta!![]()
Che dite?
Grazie mille