Het onderstaande script werkt! En kun je de Plesk API mee aanspreken.
Hij spuigt netjes de XML terug (als je in de broncode kijkt) maar ik krijg het niet voor elkaar om die uitgepoepte XML code in een file op te slaan met fwrite... ook wil ik niet dat hij de data (wat hij nu wel doet) print op het scherm. Wat in de code is fout of in iedergeval die er voor zorgt dat het wel op het web komt en niet in mijn filetje?
Bedankt voor je hulp!
Check code:
<?php
define("HOST", "urlhost");
define("PORT", 8443);
define("PATH", "enterprise/control/agent.php");
define("LOGIN", "*****");
define("PASSWD", "*****");
define("PROTO_VER", "1.3.1.0");
$proto = PROTO_VER;
$data =<<<EOF
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<packet version="$proto">
<client>
<get>
<filter/>
<dataset>
<gen_info/>
</dataset>
</get>
</client>
</packet>
EOF;
function write_callback($ch, $data)
{
echo $data;
return strlen($data);
}
function sendCommand()
{
$url = "https://" . HOST . ":" . PORT . "/" . PATH;
$headers = array(
"HTTP_AUTH_LOGIN: " . LOGIN,
"HTTP_AUTH_PASSWD: " . PASSWD,
"HTTP_PRETTY_PRINT: TRUE",
"Content-Type: text/xml",
);
// Initalize the curl engine
$ch = curl_init();
// Set the curl options
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// this line makes it work under https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, &$headers);
// Set the URL to be processed
curl_setopt($ch, CURLOPT_URL, $url);
// Set the callback functions
curl_setopt($ch, CURLOPT_WRITEFUNCTION, write_callback);
// Set the data to be send
global $data;
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
// Debug, however...
curl_setopt($ch, CURLOPT_VERBOSE, 1);
$result = curl_exec($ch);
if ($result == CURL_OK) {
//print_r(curl_getinfo($ch));
} else {
echo "\n\n-------------------------\n" .
"cURL error number:" .
curl_errno($ch);
echo "\n\ncURL error:" . curl_error($ch);
}
curl_close($ch);
return;
}
sendCommand();
?>