Получение XML с помощью file_get_contents () - PullRequest
1 голос
/ 13 февраля 2012

Я новичок в этом сайте, а также новичок в веб-службах.Я пытаюсь создать веб-сервис, который отправляет ответ XML на запрос клиента.Проблема, с которой я сталкиваюсь, заключается в том, что когда я выполняю запрос клиента, браузер зависает и в конечном итоге возвращается с ошибкой тайм-аута сервера.Я проверил настройки PHP.INI, чтобы убедиться, что allow_url_fopen включен.Я размещаю сайт на IBM i, используя Zend Server.Заранее благодарю за помощь.

Вот как я пытаюсь это сделать:

На стороне сервера: Этот файл называется XML3.php

<?php
ob_start();
header("Content-Type:text/xml");
echo "<?xml version='1.0' encoding='UTF-8' ?>";
echo '<posts>';
    echo '<post>';
    echo "<title>title1</title>";
    echo "<body>this is the body</body>";
    echo "<post_date>02/10/2012</post_date>";
    echo '</post>';
echo '</posts>';
ob_end_flush();

?>

На стороне клиента:

<?php 
$xml = file_get_contents('http://corvetteamericadealers.com/dev1/Examples/XML3.php');
$sxe = new SimpleXMLElement($xml);
var_dump($sxe); 

Ответы [ 2 ]

2 голосов
/ 13 февраля 2012

Этот код отлично работает для меня. Просто проверьте.

<?php
function curl_get_file_contents($URL)
{
        $c = curl_init();
        curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($c, CURLOPT_URL, $URL);
        $contents = curl_exec($c);
        curl_close($c);

        if ($contents) return $contents;
            else return FALSE;
 }

$xmlString = curl_get_file_contents("http://corvetteamericadealers.com/dev1/Examples/XML3.php");
$xml = simplexml_load_string($xmlString);
var_dump($xml); 
?>

И это мой вывод.

object(SimpleXMLElement)#1 (1) 
{ ["post"]=> object(SimpleXMLElement)#2 (3) 
{ 
["title"]=> string(6) "title1" 
["body"]=> string(16) "this is the body" 
["post_date"]=> string(10) "02/10/2012" } 
}
0 голосов
/ 13 февраля 2012

Вы внедряете веб-сервис, разбирая мыло xml?Используйте некоторый механизм веб-сервиса для генерации классов из файла .wsdl.

...