<?php
/******************************************
* POST TO REMOTE SCRIPT
******************************************/
//fake data to send via cURL
$post = 'var1=hello&var2=world';
//replace with your post destination url
$url = "http://example.com/script.php";
//start cURL
$ch = curl_init();
//define curl: set where the post is going
curl_setopt($ch, CURLOPT_URL, $url);
//define curl: set that you want the response
//to be store in a variable and not display on screen
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//define curl: set what you are sending
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
//If the post was not successful curl_exec will return false.
//If successful store response in variable
if ($xmlResponse = curl_exec($ch)) {
//close the connection
curl_close($ch);
//Trim the response from excess white space
//NOTE:It may be necessary to do further sanitizing of the string
$xmlResponse = trim($xmlResponse);
//enable error reporting
libxml_use_internal_errors(true);
//parse the xml response string
$xmldata = simplexml_load_string($xmlResponse);
//store the original xml in an array
$xml = explode("\n", $xmlResponse);
//if simplexml_load_string() fails, it returns false.
//if it returns false, collect the errors and print them to the screen
if (!$doc) {
$errors = libxml_get_errors();
foreach ($errors as $error) {
echo display_xml_error($error, $xml);
}
libxml_clear_errors();
}else{
//Successfull parsed the xml string
print_r($doc);
}
}else{
//There was a problem with cURL executing. Do you have cURL on this server?
echo "cURL was not able to execute";
//close connection
curl_close($ch);
}
//Helper Function For Displaying the Errors
function display_xml_error($error, $xml){
$return = $xml[$error->line - 1] . "\n";
$return .= str_repeat('-', $error->column) . "^\n";
switch ($error->level) {
case LIBXML_ERR_WARNING:
$return .= "Warning $error->code: ";
break;
case LIBXML_ERR_ERROR:
$return .= "Error $error->code: ";
break;
case LIBXML_ERR_FATAL:
$return .= "Fatal Error $error->code: ";
break;
}
$return .= trim($error->message) .
"\n Line: $error->line" .
"\n Column: $error->column";
if ($error->file) {
$return .= "\n File: $error->file";
}
return "$return\n\n--------------------------------------------\n\n";
}
?>