Newsgroup: it.comp.www.php
Titolo: fread(): supplied argument is not a valid stream resource ?

sto cercando di utilizzare il seguente codice, che ho utilizzato
praticamente tale e quale copiandolo da un libro
(Professional PHP4 XML)
A meno che a furia di ribaltarlo per scoprire cos'è che non va io non sia
diventata completamente cieca :-) non mi pare di aver commesso errori di
sintassi, dimenticato virgolette o punti e virgole.
// altre funzioni tra cui creazione del parser... tutto dovrebbe essere ok
function OpenFile($fileName) {
 if (!($fp = fopen($fileName, 'r'))) {
  die('Non è possibile aprire il file XML: ' . $fileName);
  }
 return $fp;
 }
function Parse($xmlParser, $sp) {
 while ($data = fread($fp, 4096)) {
  $parsedOkay = xml_parse($xmlParser, $data, feof($fp));
  if(!$parsedOkay && xml_get_error_code($xmlParser) != XML_ERROR_NONE) {
   die ('Errore del parser XML: ' .
xml_error_string(xml_get_error_code($xmlParser)) . ' alla linea ' .
xml_get_current_line_number($xmlParser));
   }
  }
 }
// ... un po' di altra roba, che dovrebbe essere ok
$fp = OpenFile('./browserlist.xml');
Parse($xmlParser, $fp);
// alcune altre cosine
allora, il risultato è una pagina in cui appare il seguente errore:
Warning: fread(): supplied argument is not a valid stream resource in
c:\documenti\htdocs\browsers\index.php on line 31
La linea 31 è per la precisione quella in cui sta scritto
while ($data = fread($fp, 4096)) {
Inutile dire che il file esiste ed è un banalissimo file xml.
Forse vale invece la pena dire che uso Apache/1.3.12 e PHP 4.3.0 su un
sistema Windows 98 a corto di Ram.
Mi decido a scrivere qui perchè ho già effettuato ricerche a tappeto e sono
riuscita a trovare una massa di pagine che hanno il problema, ma nessuna
pagina che spieghi che significa, a che è dovuto, e soprattutto come
risolverlo.
Qualcuno mi può aiutare?
Rossella

 Rossella>
Giusto per spararne una: prova a richiamare la funzione così:
$fp = OpenFile("browserlist.xml");
Hai controllato se il percorso del file è corretto?
Cioè il file browserlist.xml si trova nella stessa directory dello script?
--
CLS
www.vallecaudina.net

 Cioč il file browserlist.xml si trova nella stessa directory dello script?
il percorso del file č corretto.
Ho provato anche solo con browserlist.xml invece di ./browserlist.xml ma il
risultato č identico.
Rossella

 Rossella
Controlla un po'... sembra che in questa funzione le variabili $p e $fp non
coincidono
function Parse($xmlParser, $sp) { // c'è $sp, non dovrebbe essere $fp?
                                         ^^^
while ($data = fread($fp, 4096)) { // qui $fp è vuota...
                                ^^^
etc.
fai una prova..
Ciao
--
CLS
www.vallecaudina.net

 
www.vallecaudina.net
aaaaaagggghhhhh
sarei tentata di terminare qua :-), invece vado avanti e ti ringrazio :-)
chiedo scusa, ma mi sono veramente spaccata gli occhi su righe di codice e
se non lo vedevi tu io non l'avrei visto mai piů.
Grazie per la pazienza e a presto (spero con richieste meno cretine :-)
Rossella

 Rossella
Figurati, è stato un piacere
Ciao
--
CLS
www.vallecaudina.net

 se non lo vedevi tu io non l'avrei visto mai piů.
Farlo vedere a PHP (e' molto piu' bravo in vedere queste cose):
error_reporting(E_ALL);
  ed il mal di testa passa.
ancora meglio nel php.ini (restart server in caso)
  error_reporting = E_ALL

   error_reporting = E_ALL
seguo senz'altro il consiglio.
grazie,
Ross