Avatar

a planned features for mlf 2.4, eine Bitte an @Milo (Project organisation)

by Auge ⌂, Thursday, October 06, 2016, 21:20 (2430 days ago) @ Auge

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!

locked
54274 views

Complete thread:

 RSS Feed of thread