Reputation: 17
I want to parse xml file from another server.
<?php
$xml = simplexml_load_file('http://example_page.com/api/test.xml');
?>
And this code work only if this file is on this same server as page, but I have got xml file on another server.
Warning from webpage:
Warning: simplexml_load_file(http://example_page.ugu.pl/api/test.xml) [function.simplexml-load-file]: failed to open stream: Connection refused in /virtual/z/y/example_page.ugu.pl/index.php on line 14
Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://example_page.com/api/test.xml" in /virtual/z/y/example_page.ugu.ugu.pl/index.php on line 14
P.S. allow_url_fopen is still on.
Upvotes: 2
Views: 9989
Reputation: 3236
Seems like there is some redirection problem in the url you are accessing, and most probably simplexml_load_file()
doesn't follow redirects...
So the solution would be to use file_get_contents()
or cUrl
...
As file_get_contents()
is easier, I am showing that only...
The code would have to be something like:
<?php
$xml = simplexml_load_string(file_get_contents('http://example_page.ugu.pl/api/test.xml'));
?>
More:
<?php
$xml = simplexml_load_string(file_get_contents('http://jakdojade.pl/pages/api/outputs/schedules.xml'));
?>
^ That too, totally works!
Upvotes: 3
Reputation: 1418
PHP Documentation:
Note:
Libxml 2 unescapes the URI, so if you want to pass e.g. b&c as the URI parameter a, you have to call simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Since PHP 5.1.0 you don't need to do this because PHP will do it for you.
So. which version are you used?
Or, you can try like this:
$xml_content = file_get_content('http://example_page.com/api/test.xml');
xml = simplexml_load_string($xml_content);
Upvotes: 0
Reputation: 367
You should use CURL (if is active).
$url = "http://www.you-web-here.com/";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$xmlString = curl_exec($curl);
Upvotes: 0