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($fp, 4096))
{
if (!xml_parse($xml_parser, $data, feof($fp)))
{
break;
}
}
xml_parser_free($xml_parser);