Ich habe mal miniXML als XML Parser genommen.
Wenn ich nun die Methode "fromFile" aufrufe, geht bei mir im
Browser das Dialogfenster "Datei öffnen" auf, was mich fragt ob ich
die php-Datei öffnen oder speichern möchte.
Wenn ich es aus PHPEd raus mache funktioniert alles einwandfrei.
Woran könnte das liegen?
Hier mal die entsprechenden Methoden aus der miniXML Klasse:
Code:
function fromFile ($filename)
{
$modified = stat($filename);
if (! is_array($modified))
{
_MiniXMLError("Can't stat '$filename'");
return NULL;
}
if (MINIXML_USEFROMFILECACHING > 0)
{
$tmpName = MINIXML_FROMFILECACHEDIR . '/' . 'minixml-' . md5($filename);
if (MINIXML_DEBUG > 0)
{
_MiniXMLLog("Trying to open cach file $tmpName (for '$filename')");
}
$cacheFileStat = stat($tmpName);
if (is_array($cacheFileStat) && $cacheFileStat[9] > $modified[9])
{
$fp = @fopen($tmpName,"r");
if ($fp)
{
if (MINIXML_DEBUG > 0)
{
_MiniXMLLog("Reading file '$filename' from object cache instead ($tmpName)");
}
$tmpFileSize = filesize($tmpName);
$tmpFileContents = fread($fp, $tmpFileSize);
$serializedObj = unserialize($tmpFileContents);
$sRoot =& $serializedObj->getRoot();
if ($sRoot)
{
if (MINIXML_DEBUG > 0)
{
_MiniXMLLog("Restoring object from cache file $tmpName");
}
$this->setRoot($sRoot);
/* Return immediately, such that we don't refresh the cache */
return $this->xxmlDoc->numChildren();
} /* end if we got a root element from unserialized object */
} /* end if we sucessfully opened the file */
} /* end if cache file exists and is more recent */
}
ob_start();
readfile($filename);
$filecontents = ob_get_contents();
ob_end_clean();
$retVal = $this->fromString($filecontents);
if (MINIXML_USEFROMFILECACHING > 0)
{
$this->saveToCache($filename);
}
return $retVal;
}
function saveToCache ($filename)
{
$tmpName = MINIXML_FROMFILECACHEDIR . '/' . 'minixml-' . md5($filename);
$fp = @fopen($tmpName, "w");
if (MINIXML_DEBUG > 0)
{
_MiniXMLLog("Saving object to cache as '$tmpName'");
}
if ($fp)
{
$serialized = serialize($this);
fwrite($fp, $serialized);
fclose($fp);
} else {
_MiniXMLError("Could not open $tmpName for write in MiniXMLDoc::saveToCache()");
}
}
minixml.psychogenic.com