XML PLESK API

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ruliezz

ruliezz

21/09/2009 16:28:00
Quote Anchor link
Hey,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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();


?>
Gewijzigd op 01/01/1970 01:00:00 door Ruliezz
 
PHP hulp

PHP hulp

23/05/2024 19:11:15
 
Ruliezz

ruliezz

22/09/2009 23:07:00
Quote Anchor link
Iemand??
 

23/09/2009 00:21:00
Quote Anchor link
Dat de xml niet op het scherm wordt geprint kan komen dat het door de browser als html wordt gezien. Je zou dus in de broncode moeten kijken.
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.
 

23/09/2009 09:57:00
Quote Anchor link
Lees de CURL documentatie eens.......... je moet effe instellen wat die met de output moet
 
Ruliezz

ruliezz

23/09/2009 10:07:00
Quote Anchor link
Ik heb het al voor elkaar ;)
Maak data global in de function en doe de eerste echo $data weg.

Even mijn programmeur leraar gevraagd :D

Groetjes en bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.