Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    funzione replace non funziona se inclusa

    Ho un problema con una funzione a cui passo una stringa per effettuare un replace di alcuni caratteri (per generare url seo friendly).
    La funzione è semplicissima:

    function rewritestr($stringa) {
    $stringa = str_replace("à","a",$stringa);
    ...
    }

    $stringa = "testoaccentàto";

    $stringa_pulita = rewritestr($stringa);

    Il problema è che se sposto la funzione in un file "function.php" che vado poi ad includere, la funzione sembra non riconoscere i caratteri e non fa il replace. Tutte le altre operazioni sulla stringa funzionano ugualmente (ad esempio convertire tutto in minuscolo) ma se la funzione è inclusa non intercetta le lettere accentate.
    Vi è mai successo, sapete da cosa possa dipendere?
    Grazie
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Controlla il charset con cui sono salvati i vari file php, verifica che siano tutti UTF-8 Senza BOM (oppure ANSI as UTF-8, dipende dal tuo editor come chiama tale formato).

  3. #3
    Ciao Alhazred, grazie per il tuo aiuto.
    Non ho ben capito, io uso dreamweaver, ho guardato nelle preferenze e ho visto che la codifica predefinita dei documenti è "unicode (UTF-8) ed è disattivato il check su "includi firma BOM" quindi sembra tutto ok.
    Secondo te il file che includo ha una codifica diversa da quello che include?
    Come faccio a verificarlo?
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Devi aprire i due file e nelle proprietà dovrebbe esserci scritto.
    Io non uso Dreamweaver, quindi non so se te lo dice.
    Se scarichi Notepad++ ti basta aprire i 2 file e guardare in basso a destra, c'è scritta la codifica usata.

  5. #5
    Ho installato notepad++ e ho visto che il file risulta come ANSI as UTF-8
    Paradossalmente un altro file che mi risulta ANSI (e basta) fa funzionare la funzione.
    Sai come faccio a cambiare questa proprietà?
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Apri il file solo ANSI e dal menu "Formato" seleziona "Converti in UTF-8 senza BOM", poi salvalo.

  7. #7
    Grazie mille, stavo per impazzire!
    "Link2me.it: Professional network e Marketplace"
    www.link2me.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.