そこで、CurlとPOSTメソッドを使用してサーバーに情報を渡し、そのサーバーからXMLの形式で情報を取得するphpスクリプトに取り組んでいます。次に、この情報を取得して、読み取り可能な形式に解析します。ユーザー。
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) ;
?>