XMLWriter::openUri

xmlwriter_open_uri

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::openUri -- xmlwriter_open_uriCreate new xmlwriter using source uri for output

Descrierea

Stil obiect-orientat

public XMLWriter::openUri ( string $uri ) : bool

Stil procedural

xmlwriter_open_uri ( string $uri ) : XMLWriter|false

Creates a new XMLWriter using uri for the output.

Parametri

uri

The URI of the resource for the output.

Valorile întoarse

Stil obiect-orientat: Întoarce valoarea true în cazul succesului sau false în cazul eșecului.

Stil procedural: Returns a new XMLWriter instance for later use with the xmlwriter functions on success, sau false în cazul eșecului.

Istoricul schimbărilor

Versiune Descriere
8.0.0 This function returns now an XMLWriter instance on success. Previouly, a resource has been returned in this case.

Exemple

Example #1 Direct output of XML

It is possible to directly output XML by using the php://output stream wrapper.

<?php
$out 
=new XMLWriter();
$out->openURI('php://output');
?>

Note

Notă:

On Windows, files opened with this function are locked until the writer is released.

A se vedea și

add a note add a note

User Contributed Notes 3 notes

up
3
tloeffler
9 years ago
Reproduced on Windows:

If you get an exception when you try to handle the created file (rename, move etc.) you should unset the XMLWriter instance.

In other case you'll get an exception because the XMLWriter process holds access to this file.

<?php
$xml
= new \XMLWriter();
$xml->openUri(...)
...
$xml->flush();

unset(
$xml); //important!
up
3
yankee at ignorethis dot cipher DASH code dot de
17 years ago
Want to write xml-data directly to the user instead of memory or file?
This will do:
<?php
$out
=new XMLWriter();
$out->openURI('php://output');
?>
up
1
icepick dot pt at hotmail dot com
15 years ago
I wanted to stream a XML file directly to the user and having him prompted to save it without displaying the content, but when using

<?php
$out
=new XMLWriter();
$out->openURI('php://output');
?>

the user's browser was displaying the file contents instead of prompting the user with a filesave window.

To have the XML file stream saved directly to the user without being displayed by the browser, you shoud add:

<?php
header
("Content-Type: text/html/force-download");
header("Content-Disposition: attachment; filename='file_name.xml'");
$out =new XMLWriter();
$out->openURI('php://output');
?>

This will prompt the user with a dialog box to save 'file_name.xml' on his disk, and will not display the content of the streamed XML.
To Top