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');
?>XMLReader::open
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
XMLReader::open
Референца за `xmlreader.open.php` со подобрена типографија и навигација.
XMLReader::open
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
XMLReader::open — Поставете го URI-то што го содржи XML-от за парсирање
= NULL
$uri, ?string $encoding = null, int $flags = 0): XMLReaderПоставете го URI-то што го содржи XML-документот што треба да се парсира.
Параметри
uri-
URI што покажува на документот.
encoding-
Кодирањето на документот или
null. flags-
Битови маски од (PHP 5 >= 5.1.0, PHP 7, PHP 8) constants.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false на неуспех. Ако се повика статички, враќа
XMLReader or false при неуспех.
Errors/Exceptions
-
Поминување невалиден
encodingќе фрли ValueError. -
Овој метод може да се повика статички, но пред PHP 8.0.0, ќе издаде
E_DEPRECATEDгрешка во овој случај.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.4.0 |
Поминување невалиден encoding сега ќе фрли
ValueError.
|
| 8.0.0 | NumberFormatter::__construct() е сега деклариран како статички метод, но сепак може да се повика на XMLReader instance. |
Белешки од корисници 5 белешки
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 ...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).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.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.