我使用 cURL 将一些 XML 从一个页面发布到同一站点上的另一个页面:
我从一个数组生成 XML(这个位工作正常):
$xml = new SimpleXMLElement('<test/>');
array_walk_recursive($arr, array ($xml, 'addChild'));
$xmlxml = $xml->asXML()
然后使用 cURL 发布到另一个页面:
$url = "http://www.test.com/feedtest.php";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlxml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
这会产生错误:
警告:simplexml_load_file() [function.simplexml-load-file]:I/O 警告:无法在“xxxxx/”中加载外部实体“<?xml version="1.0"?> <test> [....]”第 16 行上的 feedtest.php"
我究竟做错了什么?
我应该补充一下,这是另一页上发生的事情:
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ){
$postFile = file_get_contents('php://input');
}
$xml = simplexml_load_file($postFile);
最后一行是触发错误的行。