Я не понимаю цели записи во временный файл.Возможно, вы хотите:
$oXMLWriter->openURI('php://output');
Я никогда не использовал XMLWriter
, но, похоже, он не обрабатывает указатель файла.Я думаю, это действительно то, что вы хотите.
Для хихиканья, вот что оборачивает временный интерфейс:
class WeirdStream
{
static public $files = array();
private $fp;
public function stream_open($path)
{
$url = parse_url($path);
self::$files[$url['host']] = fopen('php://temp', 'rw');
$this->fp = &self::$files[$url['host']];
return true;
}
public function stream_write($data)
{
return fwrite($this->fp, $data);
}
}
stream_wrapper_register('weird', 'WeirdStream');
$oXMLWriter = new XMLWriter;
$oXMLWriter->openURI('weird://a');
// .. do stuff
$oXMLWriter->flush();
Теперь вы можете получить указатель файла:
$fp = WeirdStream::$files['a'];
Это может быть чисто память или временный файл на диске.
Затем вы можете циклически перебирать данные:
fseek($fp, 0, SEEK_SET);
while (!feof($fp)) $line = fgets($fp);
Но это все оченьстранно для меня.