XMLReader::open
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
XMLReader::open — パースする XML を含む URI を設定する
説明
パースされる XML ドキュメントを含む URI を設定します。
戻り値
成功した場合に true
を、失敗した場合に false
を返します。
static メソッドとしてコールされた場合には
XMLReader を返します。
失敗した場合に false
を返します
エラー / 例外
-
無効な
encoding
を指定すると、 ValueError がスローされます。 -
このメソッドは、staticメソッドとしてコールすることが出来ます。
しかし、PHP 8.0.0 より前のバージョンでは、
staticメソッドとしてコールすると
E_DEPRECATED
が発生していました。
変更履歴
バージョン | 説明 |
---|---|
8.4.0 |
無効な encoding を指定すると、
ValueError がスローされるようになりました。
|
8.0.0 | XMLReader::open() はstaticメソッドとして宣言されるようになりました。 しかし、XMLReader のインスタンス経由でも呼び出すことが出来ます。 |
+add a note
User Contributed Notes 5 notes
den at nurfuerspam dot de ¶
7 years ago
If you like to read the XML from HTTP whit a POST request, you can use libxml_set_streams_context.
Example:
<?php
$param = array('http' => array(
'method' => 'POST',
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'content' => http_build_query(array(
'post_param1' => 'value1',
'post_param2' => 'value2',
)),
));
libxml_set_streams_context(stream_context_create($param));
$reader = XMLReader::open('https://example.com/get.php?get_param=value3');
?>
dave at sophoservices dot com ¶
8 years ago
When using the XmlReader to read local XML files, remember it the open function requests a URI. Add 'file://' to the front of the FULL path to the XML. Otherwise you may get:
PHP Warning: XMLReader::open(): Unable to open source data in ...
alvaro at demogracia dot com ¶
10 years ago
XML can optionally declare its own encoding:
<?xml version="1.0" encoding="UTF-8"?>
You can use the $encoding parameter to provide this information (if missing) or override it (if wrong).
Output is always UTF-8 (that's how libxml works).
crungmungus at gmail dot com ¶
16 years ago
Windows users remember to enable php_openssl.dll in your php.ini if you want to be able to use this function (and others) with a HTTPS URL.
mood(_a_)twolate.com ¶
8 years ago
For some reasons, the open() method keep throwing me this error :
PHP Warning: XMLReader::open(): Unable to open source data in /var/www/nota/ethamap/fat_xml.php
It doesn't make sense as the xml file target hosted on my server is perfectly reachable. Adding this line before invoking open() fixed it :
libxml_disable_entity_loader(false);
Please view https://bugs.php.net/bug.php?id=62577
It is somehow related.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google