Visualizzazione risultati 1 fino 5 di 5

Discussione: str_replace caratteri speciali

  1. #1
    bcprojects non è connesso Utente AlterBlog
    Data registrazione
    21-09-2017
    Messaggi
    46

    Predefinito str_replace caratteri speciali

    Salve, devo passare dei dati da una pagina ad un altra che li processa e li stampa in un file pdf, ma sto avendo dei problemi con i caratteri speciali. i dati sono presi da una tabella database e stampati come un elenco, il problema è che appena incontra un carattere speciale si ferma li e tutto quello che cè dopo non viene stampato a video. Ho provato ad utilizzare la funzione str_replace ma non funziona.

    La prima rogna sono gli apici singoli e doppi, non sono riuscito a sostituirli in nessun modo. L'unico risultato l'ho avuto con i doppi apici scrivendoli con il loro codice html e sostituendoli con un altro carattere cosi:

    str_replace(""","a",$titolo);


    ma se invece della "a" provo a scrivere i doppi apici sotto ogni forma di codice possibile non funziona. Stesso identico problema ad esempio cel'ho con la & commerciale. Se lo scrivo cosi funziona:

    str_replace("&","e",&titolo); ma in nessun modo riesco ad ottenere a video il carattere che sto sostituendo.

    Altra cosa strana è che aggiungendo quest'ultimo str_replace quello dei doppi apici smette di funzionare. Ho provato anche htmlentities() ma non cambia nulla... come posso fare?

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Descritto in questo modo sembra un problema della libreria usata per generare il PDF. Cosa stai usando?

    I suggerimenti che do più spesso:


  3. #3
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Ciao è un discorso complesso.. Scarica un editore esadecimale e riporta qui le lettere A-Fa-f[0-9]... i dati nel database vanno specificati come utf-8 esclusivamente da php non da phpmyadmin (altrimenti se non esiste un charset per il database i dati già presenti saranno in ISO-8859-1) quindi devi provare con nuovi caratteri e devi fare tutto con PHP e non phpmyadmin (altrimenti non li salva in utf-8)..
    È in ISO-8859-1 è un byte mentre in UTF-8 sono due byte... C'è da indicare che dal php 5.6 le pagine vengono servite in UTF-8...
    Dunque è normale che se si legge in utf-8 una stringa ISO-8859-1 non si legge o appaiono dei rombi con un punto interrogativo.
    Gli apici singoli o doppi in un contesto stringa sono riservati sia in php che nel database mysql.
    La visualizzazione HTML differisce da quella testuale ad esempio & può solo essere rappresentato in & (il browser lo trasforma in &) se si legge da html menntre in .txt si può leggere direttamente &.

    Quindi
    1a)la pagina che salva e legge i dati deve essere in utf-8
    1b)Nel database vanno inseriti dati utf-8 senza l'aiuto di phpmyadmin

    Fai una prova così su nuove tabelle http://forum.it.altervista.org/php-m...ml#post1372667
    Questa funzione restituisce una stringa con i caratteri di escape http://php.net/manual/en/mysqli.real-escape-string.php quando li prelevi e non vanno memorizzati nel database li devi togliere :)
    Più o meno è questo il tuo problema ma senza codice e la libreria è impossibile aiutarti..
    Lo so che non hai capito nulla ma si procede un passo alla volta
    Ultima modifica di darbula : 12-06-2018 alle ore 14.32.46

  4. #4
    bcprojects non è connesso Utente AlterBlog
    Data registrazione
    21-09-2017
    Messaggi
    46

    Predefinito

    Sto utilizzando FPDF. Le pagine php sono tutte settate in UTF-8, ho fatto varie prove nel database andando anche a modificare manualmente i caratteri speciali ma il pdf sembra non ammettere a prescindere caratteri speciali come ", ', &, +, ecc... Sto provando varie conversioni ma non ne vengo a capo!

  5. #5
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Puoi fornire un esempio di codice completo? (Creando nuove tabelle con dei dati come ti ho mostrato nel link) Così magari io ci possa lavorare..
    Citazione della libreria dal seguente sito http://www.fpdf.org

    Che lingue posso usare?
    La classe può produrre documenti in molti linguaggi oltre a quelli Europei Occidentali: Centro Europei, cirillico, greco e baltico, purchè abbiate i font TrueType o Type1 con il set di caratteri.

    Prima di creare questo file .PDF puoi creare un file .txt da condividere pubblicamente?
    Ultima modifica di darbula : 13-06-2018 alle ore 18.36.59

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •