これは私のPHPコードです。はCURL出力を取得できません
<?php
$xml_post_string = '<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<RequestList xmlns="http://tempuri.org/">
<category>syncapppr</category>
<subcategory>put_app_presc</subcategory>
<paralist>[{"app_List":[{"server_id":"","doctorid":"1266","patientid":"19569","prescriptionid":"870472109","parentid":"","parentserverid":"","FeesDue":"0","clinicid":"1273","caseno":"KAS-5712022016514","casetype":"","reason":"","note":"","diagnosis":"","adate":"22/07/2016","atime":"05:50 AM","fee":"300","refdoctorname":"","canceledbit":"false","rescheduledbit":"false","reschedule_reason":"","recschduledid":"","cancelled_reason":""}],"doc_id":"1266"}]</paralist>
</RequestList>
</soap12:Body>
</soap12:Envelope>';
$headers = array(
"Content-type: application/soap+xml; charset=utf-8",
"Content-length: ".strlen($xml_post_string),
);
$ch = curl_init();
$fh = fopen('soap_response.xml', 'w');
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, 'http://fakeurl.com/webservices/desktopservices.asmx?op=RequestList');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_TIMEOUT, 100000000);
//curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); // the SOAP request
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
//curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FILE, $fh);
$response = curl_exec($ch);
//$xml = iconv("GB18030", "utf-8", $response);
$parser = simplexml_load_string(stripslashes($response));
$json = json_encode($parser);
echo($json);
curl_close($ch);
fclose($fh);
?>
私のスクリプトを実行するとエラーになります。
警告:simplexml_load_string():エンティティ:行1:パーサーエラー:開始タグが予想、 '<' Cで見つかりません:\ xamppの\ htdocsに\ DsAdmin \ call_1.phpライン41
警告に:)(simplexml_load_string:Cで1:\ XAMPP \ htdocsに\ DsAdmin \ call_1.phpライン上の41
警告:simplexml_load_string():^ Cで:\ XAMPP \ htdocsに\ DsAdmin \ call_1.phpライン41
に
私はCURLの出力をファイルに保存していますo。そのファイルには正しい出力が得られています。私は自分のコードで何が間違っているのか理解できません。
私はネット上で多くのソリューションを審査していましたが、何も働かなかったので、ここで私を助けることができますか?あなたが閉じている?phpのタグをこの行に
ファイル出力
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><RequestListResponse xmlns="http://tempuri.org/"><RequestListResult><syncapp_pres_list><SyncApp_Pres_Master><app_List><Appointment_Master><id>0</id><server_id>15238</server_id></Appointment_Master></app_List><startfrom>0</startfrom><endfrom>0</endfrom><clinicid>0</clinicid></SyncApp_Pres_Master></syncapp_pres_list></RequestListResult></RequestListResponse></soap:Body></soap:Envelope>
1行のXMLで試しましたか? – tanaydin
@tanaydinはあなたの質問をしなかった。 – Archish
$ xml_post_stringに新しい行がいくつかありますが、それが問題の原因になっている可能性があります。 – tanaydin