我是这个网站的新手,也是网络服务的新手。我正在尝试创建一个Web服务,将xml响应发送回客户端请求。我遇到的问题是当我执行客户端请求时,浏览器挂起并最终返回服务器超时错误。我检查了PHP.INI设置以确保allow_url_fopen设置为on。 我在使用Zend Server的IBM i上托管该网站。 在此先感谢您的帮助。
这就是我尝试这样做的方式:
服务器端:此文件名为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);
答案 0 :(得分:2)
这段代码对我来说很好。请检查。
<?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" }
}
答案 1 :(得分:0)
您是通过解析soap xml来实现Web服务的吗?使用一些Web服务机制从.wsdl文件生成类。