所以我正在研究一个 php 脚本,它使用 Curl 和 POST 方法将信息传递给服务器,然后以 XML 的形式从该服务器取回信息。然后我想获取这些信息并将其解析为可读格式用户。
我使用 curl 获取信息并将其加载到变量 ($result) 中,然后我想将其加载到 simpleXML 中并存储在变量 $routeinfo 中。但是,当我执行 var_dump($routeinfo) 时,似乎没有存储任何数据。我通过回显它确认 $result 中存在数据。
我还认为这可能是由于当我回显 $result 时 XML 没有显示在浏览器中(但如果我检查源代码,它就在那里)。只是为了检查我是否使用了 htmlentities 但这会导致很多错误,因为 < 被解释为它的 html 等效项。无论如何,我已经陷入僵局并且已经记录了好几个小时实施不同的建议无济于事。我的代码在下面,如果能提供任何帮助,我将不胜感激。
<?php
//retrieve form data in a variable
$input = $_POST['stopNo'] ;
//declare other variables needed
$api_key = 'xxxkey' ;
$api_id = 12345 ;
$url = 'url to send data to' ;
$querystring = "appID=". $api_id . "&apiKey=" . $api_key . "&stopNo" . $input ;
$data = urlencode($url) ;
//curl using
$ch = curl_init() ;
//set up curl
curl_setopt($ch, CURLOPT_URL, 'urlsendingdatato');
curl_setopt($ch, CURLOPT_POSTFIELDS, 'appID='.urlencode($api_id).'&apiKey=' .urlencode($api_key) . '&stopNo=' .urlencode($input) );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0 ) ;
curl_setopt($ch, CURLOPT_ENCODING, "UTF-8") ;
curl_setopt($ch, CURLOPT_BINARYTRANSFER , TRUE) ;
//execute and gather info
$result = curl_exec($ch) ;
//close connection
curl_close($ch) ;
//format data
//ent at the moment serves no purpose doesn't render the information correctly
$ent = htmlentities($result);
$routeinfo = new SimpleXMLElement($result) ;
//print data
echo "<br> $result <br>" ;
var_dump($routeinfo) ;
?>