Habe hier ein Script wo simplexml_load_file() nicht mehr funktioniert ...
Code: Alles auswählen
E: Unable to locate package php5.6-xml
E: Couldn't find any package by regex 'php5.6-xml'
Code: Alles auswählen
E: Unable to locate package php5.6-xml
E: Couldn't find any package by regex 'php5.6-xml'
neinfulltilt hat geschrieben:gibt es kein php5.6-xml package mehr?
Habe hier ein Script wo simplexml_load_file() nicht mehr funktioniert ...Code: Alles auswählen
E: Unable to locate package php5.6-xml E: Couldn't find any package by regex 'php5.6-xml'
Code: Alles auswählen
$daten1 = simplexml_load_file("https://admin:pass@xx.xxx.xxx.xxx:2812/_status?format=xml");
Probier doch erst mal einfulltilt hat geschrieben:hmm, das schockt mich aber jetz![]()
ich greife über simplexml auf Monit outputs zu, um mehrere Server übersichtlich unterwegs zu überwachen ...also Monit ist Passwort geschützt und das xml soll dabei ausgewertet werden von einem PHP 5.6/FCGID System (Jessie)Code: Alles auswählen
$daten1 = simplexml_load_file("https://admin:pass@xx.xxx.xxx.xxx:2812/_status?format=xml");
Code: Alles auswählen
foo = simplexml_load_file(/var/www/foo/bar.xml)
echo $foo
Code: Alles auswählen
$my_var = file_get_contents('https://foo:bar@example.com/baz.xml');
Code: Alles auswählen
simplexml_load_string()
Code: Alles auswählen
SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
I/O warning : failed to load external entity "https:// ...
Warning: simplexml_load_file(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /var/www/
Ah OK, mit welcher Methode ging es jetzt?fulltilt hat geschrieben:[…]scheint was mit dem self signed ssl cert zu tun zu habenCode: Alles auswählen
SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed I/O warning : failed to load external entity "https://[foo.example.com] Warning: simplexml_load_file(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /var/www/
Code: Alles auswählen
sudo update-ca-certificates
Code: Alles auswählen
openssl s_client -connect foo.example.com:443 -CApath /etc/ssl/certs
Code: Alles auswählen
original output über Browser
<monit>
<server>
<id>f6265d230c727923e0497d5f307238b7</id>
output über file_get_contents
<?xml version="1.0" encoding="ISO-8859-1"?>
<monit>
<server>
<id>f6265d230c727923e0497d5f307238b7</id>
Code: Alles auswählen
$daten01 = file_get_contents("https://admin:password@example.com:2812/_status?format=xml", false, stream_context_create($arrContextOptions));
$dom = new DOMDocument;
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($daten01);
echo "<pre >". htmlentities($dom->saveXML())."</pre>";
Das stimmt so, dein Browser zeigt dir den XML-Header halt nicht an, PHP schon.fulltilt hat geschrieben:ugh, das ist gar nicht so einfach ...
bekomme jetzt zwar eine Ausgabe mit file_get_contents() aber ich bekomme den Output nicht mehr richtig formatiert damit es mit den anderen PHP Scripten passt.
so sieht das ganze jetzt aus:also da müsste die obere Zeile noch ganz weg: <?xml version="1.0" encoding="ISO-8859-1"?>Code: Alles auswählen
original output über Browser <monit> <server> <id>f6265d230c727923e0497d5f307238b7</id> output über file_get_contents <?xml version="1.0" encoding="ISO-8859-1"?> <monit> <server> <id>f6265d230c727923e0497d5f307238b7</id>
hat jemand eine Idee?
Code: Alles auswählen
<monit>
hier das Original xml im Browser
<server>
<id>aefdac39cdc4bcf4539198944e29d3e8</id>
<incarnation>1475002702</incarnation>
<version>5.4</version>
<uptime>3270891</uptime>
und hier die Verarbeitung im Script
$daten01 = file_get_contents("https://admin:password@example.com:2812/_status?format=xml", false, stream_context_create($arrContextOptions));
$dom = new DOMDocument;
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($daten01);
$Host1uptime = $daten01->server->uptime;
echo $Host1uptime; // alle Values getestet bleibt alles leer
Also geht in der gleichen Konstellation einfulltilt hat geschrieben:irgendwie haut das nicht mehr hin ... echo zeigt mir beim testen im Script zwar alles schön formatiert an aber ich kann nicht mehr darauf zugreifen
bekomme keine Ausgabe mehr:auf einem PHP 5.4 System funktioniert das alles ohne Probleme mit simplexml_load_file ...Code: Alles auswählen
<monit> hier das Original xml im Browser <server> <id>aefdac39cdc4bcf4539198944e29d3e8</id> <incarnation>1475002702</incarnation> <version>5.4</version> <uptime>3270891</uptime> und hier die Verarbeitung im Script $daten01 = file_get_contents("https://admin:password@example.com:2812/_status?format=xml", false, stream_context_create($arrContextOptions)); $dom = new DOMDocument; $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $dom->loadXML($daten01); $Host1uptime = $daten01->server->uptime; echo $Host1uptime; // alle Values getestet bleibt alles leer
Code: Alles auswählen
echo $daten01;
Code: Alles auswählen
$xml01 = simplexml_load_string($daten01);
$Host1uptime = $xml01->server->uptime;
echo $Host1uptime;
Code: Alles auswählen
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
$daten01 = file_get_contents("https://admin:password@example.com:2812/_status?format=xml", false, stream_context_create($arrContextOptions));
$xml01 = simplexml_load_string($daten01);
$Host1uptime = $xml01->server->uptime;
echo $Host1uptime;