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

    problema con lettura file xml generato con htaccess

    su mysql ho una tabella che contiene diverse centinaia di file xml conservati in un campo "mediumblob".

    per leggere il contenuto di questi file, ho lavorato su un parser xml salvando alcuni di questi file direttamente sul server. adesso, però, quando vado a richiamare i file del database (tramite la pagina "crea_log.php?id=$id" (modificata con htaccess in "log/$id.xml") il parser non riesce a leggere il contenuto perchè non trova il file fisicamente sul server.

    Warning: fopen(log/1.xml) [function.fopen]: failed to open stream: No such file or directory in .... Impossibile aprire il file

    come posso risolvere questo problema?

    Codice PHP:
    $filename "xml_import/log.xml";    // percorso reale. il file c'è ed il parser RIESCE a leggerlo
    $filename "log/1.xml";            // percorso virtuale. il file non è fisicamente sul server ma viene generato dalla pagina "crea_log.php?id=1" con l'ausilio del file htaccess. il parser NON RIESCE a leggerlo

    if ( !($fp fopen("$filename","r")))
    {
        die(
    "Impossibile aprire il file");
    }

    $person_counter 0;
    $person_data = array();
    $xml_current_tag_state '';

    if ( !(
    $xml_parser xml_parser_create()) )
    {
        die(
    "Impossibile creare il parser XML!");
    }

    xml_set_element_handler($xml_parser"startElementHandler""endElementHandler");
    xml_set_character_data_handler($xml_parser"characterDataHandler");

    while (
    $data fread($fp4096))
    {
        if (!
    xml_parse($xml_parser$datafeof($fp)))
        {
            break;
        }
    }

    xml_parser_free($xml_parser); 

  2. #2
    tra le tante prove, ho aggiunto il percorso assoluto al file generato "virtualmente" e funziona

    Codice PHP:
    $filename "http://www.sito.it/log/1.xml"
    sinceramente non mi spiego il motivo, però l'importante è che così almeno funziona

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    fopen: se il file è fisicamente presente sul server allora sbagli la cartella di riferimento (bisogna vedere dove si trova e dov'è lo script chiamante)

  4. #4
    Originariamente inviato da eiyen
    fopen: se il file è fisicamente presente sul server allora sbagli la cartella di riferimento (bisogna vedere dove si trova e dov'è lo script chiamante)
    il file non è fisicamente nel server ma viene creato dinamicamente tramite php (che lo estrae dal database) e dall'htaccess (che modifica il nome della pagina dinamica in "nomefile.xml").

    la cosa strana è che se metto il percorso relativo del file creato in questo modo, fopen non funziona. se invece metto il percorso assoluto allora sì.

    boh

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ah... ho capito: ma ".htaccess" lavora, diciamo, sul protocollo http in questo caso, se quindi non "passi" da quello non viene fatta la traduzione del nome

  6. #6
    ecco quindi perchè bisogna usare per forza il percorso assoluto. ok, grazie eiyen

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Ciao!!

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.