XML PLESK API
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?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();
?>
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();
?>
Gewijzigd op 01/01/1970 01:00:00 door Ruliezz
Iemand??
Dat je het niet kan opslaan kan door vanalles komen. Krijg je geen foutmelding? (error_reporting(E_ALL)).
Ook kan je het proberen met dom of simplexml. Die kunnen beide xml bestanden opslaan.
Als je met xml werkt is het sowieso beter / netter om een van die twee te gebruiken.
Lees de CURL documentatie eens.......... je moet effe instellen wat die met de output moet
Maak data global in de function en doe de eerste echo $data weg.
Even mijn programmeur leraar gevraagd :D
Groetjes en bedankt!