PHP-来自curl_exec()的格式错误的结果
我对PHP函数curl\u exec()有问题。我向一个通知发送一个SOAP请求,该通知应该返回一个SOAP响应,但我只得到一个没有XML标记的字符串 好的,我用这个代码:PHP-来自curl_exec()的格式错误的结果,php,xml,curl,soap,Php,Xml,Curl,Soap,我对PHP函数curl\u exec()有问题。我向一个通知发送一个SOAP请求,该通知应该返回一个SOAP响应,但我只得到一个没有XML标记的字符串 好的,我用这个代码: protected function _send_request($url,$post_string) { $soap_do = curl_init(); curl_setopt($soap_do, CURLOPT_URL, $url ); curl_setopt($soap_
protected function _send_request($url,$post_string) {
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, $url );
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_TIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($soap_do, CURLOPT_POST, true );
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $post_string);
curl_setopt($soap_do, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=utf-8', 'Content-Length: '.strlen($post_string) ));
if ( ($result = curl_exec($soap_do)) === false) {
echo curl_error($soap_do);
}
else {
echo("<pre>".$result."</pre>");
}
}
XML结构似乎丢失了,我无法重新创建它。我正在使用XAMPPHPVersion5.3.1和curl扩展。有人知道如何获得原始的XML结构吗?如果您在浏览器中回显该结果,那么浏览器会将所有这些XML标记错误地解释为HTML,并且只相应地向您显示部分结果。查看浏览器的页面源代码,您可能会看到完整的XML。它位于
中,可以保留换行符,但您需要htmlspecialchars()
来转义
。无论何时,当您想要检查任何机器可读的字符串(或检查您的PHP代码是否产生了预期的输出)时,不要将其视为在浏览器中呈现的字符串。改为查看源代码。
<?xml version='1.0' encoding='utf-8'?>
<s:Envelope xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:tds=\"http://www.onvif.org/ver10/device/wsdl\" xmlns:tt=\"http://www.onvif.org/ver10/schema\">
<s:Body>
<tds:GetSystemDateAndTimeResponse>
<tds:SystemDateAndTime>
<tt:DateTimeType>
Manual
</tt:DateTimeType>
<tt:DaylightSavings>
true
</tt:DaylightSavings>
<tt:TimeZone>
<tt:TZ>
CET-1CEST,M3.5.0,M10.5.0/3
</tt:TZ>
</tt:TimeZone>
<tt:UTCDateTime>
<tt:Time>
<tt:Hour>
13
</tt:Hour>
<tt:Minute>
26
</tt:Minute>
<tt:Second>
21
</tt:Second>
</tt:Time>
<tt:Date>
<tt:Year>
2014
</tt:Year>
<tt:Month>
2
</tt:Month>
<tt:Day>
5
</tt:Day>
</tt:Date>
</tt:UTCDateTime>
<tt:LocalDateTime>
<tt:Time>
<tt:Hour>
14
</tt:Hour>
<tt:Minute>
26
</tt:Minute>
<tt:Second>
21
</tt:Second>
</tt:Time>
<tt:Date>
<tt:Year>
2014
</tt:Year>
<tt:Month>
2
</tt:Month>
<tt:Day>
5
</tt:Day>
</tt:Date>
</tt:LocalDateTime>
</tds:SystemDateAndTime>
</tds:GetSystemDateAndTimeResponse>
</s:Body>
</s:Envelope>
ManualtrueCET-1CEST,M3.5.0,M10.5.0/3134622201425144622201425