我正在从 PHP 输入中读取 XML 数据,并且收到的是数字 1 而不是 XML 数据。
用于从 PHP 输入读取 XML 数据的 PHP 代码:
$xmlStr="";
$file=fopen('php://input','r');
while ($line=fgets($file) !== false) {
$xmlStr .= $line;
}
fclose($file);
用于发送 XML 的 PHP 代码:
public static function xmlPost($url,$xml) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, 1); // set url to post to
curl_setopt($ch, CURLOPT_URL, $url); // set url to post to
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return into a variable
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml"));
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 40); // times out after 4s
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); // add POST fields
curl_setopt($ch, CURLOPT_POST, 1);
$result=curl_exec ($ch);
return $result;
}
无论我发送什么 XML,接收端都会得到数字 1 而不是 XML 数据。有任何想法吗?
任何有关该问题的信息将不胜感激。
更新
以下代码有效:
$xmlStr = file_get_contents('php://input');
但为什么我的代码没有?为什么我的代码返回 1 而不是实际的 xml ?