XMLReader::open

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::openУстановить URI, содержащий XML-документ для разбора

Описание

public bool XMLReader::open ( string $URI [, string $encoding [, int $options = 0 ]] )

Установить URI, содержащий XML-документ, который будет разобран.

Список параметров

URI

URI, указывающий на документ.

encoding

Кодировка документа или NULL.

options

Битовая маска, состоящая из LIBXML_* констант.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. при статическом вызове, возвращается XMLReader или FALSE в случае возникновения ошибки.

Ошибки

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Список изменений

Версия Описание
5.2.0 Были добавлены параметры encoding и options.

Смотрите также

Коментарии

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.
2008-09-15 20:11:43
http://php5.kiev.ua/manual/ru/xmlreader.open.html
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).
2014-11-14 14:35:17
http://php5.kiev.ua/manual/ru/xmlreader.open.html
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.
2016-10-14 14:03:06
http://php5.kiev.ua/manual/ru/xmlreader.open.html
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 ...
2016-12-02 21:43:50
http://php5.kiev.ua/manual/ru/xmlreader.open.html
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');

?>
2017-04-29 13:08:12
http://php5.kiev.ua/manual/ru/xmlreader.open.html

    Поддержать сайт на родительском проекте КГБ