//post請求
function postXMLCurl($url, $xml) { $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: text/xml; charset=utf-8', 'Content-Length: ' . strlen($xml)) ); $response = curl_exec($ch); if ($response) { curl_close($ch); return $response; } else { curl_close($ch); return false; }}
$response = postXMLCurl($url, $xml); if (!$response) { //todo return false; }<span style="white-space:pre"></span> $response = simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA); if (!is_object($response)) { //todo return false; } $result = (array)$response; //todo
//帶認證驗證的請求function post_xml_curl($url, $xml, $cert='', $key='', $certpwd='') { $ch = curl_init();curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: text/xml; charset=utf-8', 'Content-Length: ' . strlen($xml))); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);if (isset( $cert) && isset($key) && isset($certpwd)) {curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');curl_setopt($ch,CURLOPT_SSLCERT,$cert);curl_setopt($ch,CURLOPT_SSLCERTPASSWD, $certpwd);curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');curl_setopt($ch,CURLOPT_SSLKEY,$key);} $response = curl_exec($ch); curl_close($ch); return $response;}