a planned features for mlf 2.4, eine Bitte an @Milo (Project organisation)
Hallo Milo
Ich habe mal ein paar Tests zu der vorgeschlagenen Benachrichtigung über neue Versionen angestellt und komme partout nicht weiter. Ich bin mir, seitdem Alfie und ich vor mehreren Jahren ein paar Tests zu Server-zu-Server-Verbindungen durchgeführt haben, der Tatsache bewusst, dass ich schlechte Karten habe, wenn ich von meinem Server (PHP-Skript) aus eine Verbindung zu einem anderen Server herstellen will. Von Alfies Server konnten wir den meinen kontaktieren, aber nicht von meinem Server aus den seinen.
Jetzt habe ich sowohl mit dem Atom-Feed zu den Releases [1] als auch mit dem offiziellen Weg über die API [2] versucht, die Releases abzufragen; ich bekomme es einfach nicht hin. Rufe ich die in den Fußnoten vermerkten URLs im Browser auf, erhalte ich im ersten Fall eine XML- und im zweiten Fall eine JSON-Ressource. Über ein PHP-Skript kriege ich es aber nicht hin. Der Weg über fopen
oder file_get_contents
bleibt mir versperrt, weil das die Konfiguration meines Webspaces nicht hergibt. Mit der alternativen Anbindung per curl wird mir die Verbindung abgelehnt (refused).
Anbei die Ausgabe von curls verbose:
https://api.github.com/repos/ilosuna/mylittleforum/releases
cUrl error (#7): couldn't connect to host
Verbose information:
* About to connect() to api.github.com port 443 (#0)
* Trying 192.30.253.116...
* Connection refused
* couldn't connect to host
* Closing connection #0
Nun weiß ich nicht, ob das an meiner Serverkonfiguration liegt, oder ob ich einfach nur zu blöd bin. Kannst du bitte mal folgenden Code als PHP-Skruipt abspeichern, hochladen, ausführen und berichten, was dabei herauskommt?
<?php header("Content-Type: text/html; charset=utf-8"); ini_set('display_errors', 1); error_reporting(E_ALL); /** * wrapper to load an external ressource into a variable * * @param string $url * @return bool false * @return string $string */ function my_load_external_feed($url) { if ($url === NULL) return false; if (filter_var($url, FILTER_VALIDATE_URL) === false) return false; $string = ''; if (function_exists('curl_init')) { # read the xml-ressource from the URL with curl $verbose = fopen('php://temp', 'w+'); $c = curl_init($url); curl_setopt($c, CURLOPT_VERBOSE, true); curl_setopt($c, CURLOPT_STDERR, $verbose); curl_setopt($c, CURLOPT_SSLVERSION, 6); curl_setopt($c, CURLOPT_RETURNTRANSFER, true); curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($c, CURLOPT_FORBID_REUSE, true); $string = curl_exec($c); if ($string === FALSE) { printf("<pre>cUrl error (#%d): %s</pre>\n", curl_errno($c), htmlspecialchars(curl_error($c))); } rewind($verbose); $verboseLog = stream_get_contents($verbose); echo "<p>Verbose information:</p>\n<pre>", htmlspecialchars($verboseLog), "</pre>\n"; curl_close($c); } else { return false; } return $string; } #$test = "https://github.com/ilosuna/mylittleforum/releases.atom"; $test = "https://api.github.com/repos/ilosuna/mylittleforum/releases"; echo '<pre>'. print_r($test, true) .'</pre>'; $ret = my_load_external_feed($test); #echo '<pre>'; #var_dump($ret); #echo '</pre>'; echo '<pre>'. print_r(json_decode($ret), true) .'</pre>'; ?>
Mit bestem Dank im voraus,
tschö, Auge
[1] https://github.com/ilosuna/mylittleforum/releases.atom
[2] https://api.github.com/repos/ilosuna/mylittleforum/releases
--
Trenne niemals Müll, denn er hat nur eine Silbe!