molily: Datum einer Datei auf einem fremden Server anzeigen lassen

Beitrag lesen

Hallo, Conbart.

leider funktioniert es nicht. Bei Aufruf steht da nur:
Letzte Änderung:
Das wars schon, mehr kommt nicht.

Okay, ich habe das Skript etwas modifiziert. Probiere folgendes:
--8<--
<?php
// Folgende Zeilen anpassen:
$dateipfad="/test.pdf";
$host="molily.dyndns.org";

$timeout=5;
$antwort="";
$request="HEAD ".$dateipfad." HTTP/1.0\r\nHost: ".$host."\r\n\r\n";

$fp=fsockopen($host, 80, &$errno, &$errstr, $timeout);
if (!$fp) {
 die($errstr." (".$errno.")<br>\n"); // Verbindung fehlgeschlagen
} else {
 fputs($fp, $request);
 while (!feof($fp)) {
 $antwort.=fgets($fp, 128);
 }
 fclose($fp);
}

// In folgender Zeile das "//" entfernen, damit die Antwort angezeigt wird, um ggf. Fehler zu finden:
// echo($antwort."\n\n");

if (preg_match("~HTTP/1.(0|1)\s404~", $antwort)) echo("Datei nicht gefunden (404)! ");
if (!preg_match("~HTTP/1.(0|1)\s200~", $antwort)) {
 echo("Request fehlgeschlagen!");
} else {
 if (preg_match("~Last-Modified:\s([^\r\n]+)~i", $antwort, $treffer)) {
  $timestamp=strtotime($treffer[1]);
  $zeitstring=date("d.m.y H:i", $timestamp);
  echo($zeitstring." Uhr");
 } else {
  echo("unbekannt");
 }
}
?>
-->8--

Dort war auch ein kleiner Fehler im Quelltext, welcher die Fehlerausgabe verhindert hat.
Wenn das Skript jetzt nicht funktioniert, sollte es zumindest einen Fehler ausgeben.

Installierte Server-Software: Apache/1.3.12 (Unix) PHP/4.0.1pl2
Denke das es vielleicht daran liegen kann, aber habe nicht genug Ahnung davon.

Nein, PHP 4 als Modul in Apache dürfte ausreichen.
Das Problem könnte daran liegen, dass der Server, auf dem du das PHP-Skript laufen lässt, so konfiguriert ist (bzw. das PHP-Modul so kompiliert ist), dass in PHP-Skripts die Funktion "fsockopen" nicht verfügbar ist, also dass man mit PHP keine Verbindungen zu anderen Computern herstellen kann. (Aber dann müsste trotzdem eine Fehlermeldung erscheinen.)
Daran kannst du dann leider nichts ändern.

Mathias