繁体   English   中英

将CURL结果转换为PHP数组?

[英]CURL result into PHP array?

下面的代码通过POST通过带有URL的text / xml的CURL通过CURL发送XML。 服务器通过回显$ ch_result进行响应。 我正在通过AJAX对此文件进行调用,因为返回的XML文件的内容将需要显示在客户端。 无论如何,我可以将这个XML文件放入一个数组中,这样我就可以使用json_encode并使它像这样返回了吗? 由于返回的XML文件很大,因此我需要使用JavaScript轻松处理此内容...因此数组最好?

谢谢!

<?php
  $xml_builder = '
                  MY XML POSTED TO SERVER GOES HERE';
  $ch = curl_init('http://username:password@myserver.blabla/api');
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_builder);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
  curl_setopt($ch, CURLOPT_REFERER, 'http://www.mydomain.co.uk');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $ch_result = curl_exec($ch);
  curl_close($ch);

  echo $ch_result;
?>

您可以在服务器端解析XML,也可以在客户端解析XML。

在服务器端:

简单又脏的方式:

<?php
  $a = json_decode(json_encode((array) simplexml_load_string($s)),1);
?>

但是,请阅读这篇文章:

http://gaarf.info/2009/08/13/xml-string-to-php-array/

在客户端:

如果使用的是jQuery,则可以将dataType设置为xml ,并可以使用jQuery在客户端解析xml:

如何使用jQuery解析XML?

要使用jquery解析xml,您必须回显:htmlentities($ ch_result),以便XML与标签等一起回显。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM