Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567

    PHP, XML e il carattere &

    Ciao a tutti,

    ho fatto uno script di importazione che importa i dati da xml, ho fatto diverse prove e alcune volte funziona e altre no, facendo un po' di scremature sono arrivato a dedurre che il set di caratteri  mi da problemi, vi posto il codice xml sintetizzato:

    Codice PHP:
    <?xml version="1.0" encoding="utf-8" ?>

    <data0399.xml>
        <anagrafica>
            <nominativo>Nome Cognome</nominativo>
            <telefono_3>Tel 333.333333 </telefono_3>
        </anagrafica>

    </data0399.xml>
    Mi sono accorto che quando nell'xml c'è il set di caratteri  da errore e non riesco a eseguire lo script, nello script sopra se tolgo il & davanti a  funziona, diversamente mi da errore e non riesco ad estrarre nessun dato.
    Lo script che uso per leggere all'interno del XML è:

    Codice PHP:
    $xml simplexml_load_file('test.xml');

    $anagrafica $xml->anagrafica;
    foreach(
    $anagrafica as $dati){
        echo 
    "Nome: ".$dati->nominativo."
    \n"
    ;

    Mi sapete dare una mano?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237
    E' normal che & ti dia errore.
    Devi replicare & usando &amp;

  3. #3
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Scusa ma tu intendi usando replace tipo così:

    Codice PHP:
    $xml str_replace("&""&"$xml); 
    Ma in questo modo sostituisco un carattere con lo stesso cosa è cambiato?

  4. #4
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237
    No scusami è che l'html editor del forum mi ha letto male il tag

    Devi sostutire & con:

    codice:
    &ambp;
    utilizzando ovviamente la funzione str_replace

  5. #5
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    il problema che
    Codice PHP:
    &#4; 
    è già un carattere codificato, nell'xml ce ne sono molti, ma questo da problema

  6. #6
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237
    Bè avevi detto che & ti dava errore...

  7. #7
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    si ma penso perchè è legato a  infatti se lo cancello e lascio &#46; presente nella stessa riga dell'XML funziona, ne deduco che è questo set di caratteri che gli da noia (non so se mi sono spiegato)

  8. #8
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Qualcuno ha qualche idea in merito?

  9. #9
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Ho provato a replicare in questo modo:

    Codice PHP:
    $xml simplexml_load_file('test.xml');
    $xml str_replace("&""&ambp;"$xml); 
    Ma mi da errore

    ho provato anche così, ma niente:

    Codice PHP:
    $nomefile='test.xml';
    $xml simplexml_load_file(str_replace("&""&ambp;"$nomefile)); 

  10. #10
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Hai provato a mettere il campo dentro CDATA

    Codice PHP:
    <telefono_3><![CDATA[Tel 333&#46;333333 ]]></telefono_3> 

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 © 2024 vBulletin Solutions, Inc. All rights reserved.