alter einer externen datei bestimmen
@ndre@s
- php
Hi,
wie kann man mit php das alter (last modify) einer datei bestimmen, die NICHT auf dem Server liegt, auf welchem das php-sacript läuft?
Vielen Dank für jeden hilfreichen Tipp.
Gruß
@ndre@s
Hallo,
wie kann man mit php das alter (last modify) einer datei bestimmen, die NICHT auf dem Server liegt, auf welchem das php-sacript läuft?
Ist die Datei auf einem Webserver?
Ist es eine statische Datei?
Dann hast Du gute Chancen, das Last-Modified-Datum
aus dem HTTP-Head auslesen zu koennen.
Setze mit fsockopen() eine HEAD oder GET Abfrage
auf die URL ab und werte den zurueckgegebenen
HTTP-Head aus.
Als Grundlage kann Dir folgendes weiterhelfen:
http://www.dclp-faq.de/q/q-code-links-testen.html
http://froemter.de/php/phpLinkCheck.phps
Wenn Du einfach mal im Browser schauen willst,
was der Server fuer einen HTTP-Head schickt,
kannst Du natuerlich auch
http://cgi.w3.org/cgi-bin/headers
oder
http://www.schroepl.net/cgi-bin/http_trace.pl
benuetzen...
Gruesse,
Thomas
Hello,
Wenn Du einfach mal im Browser schauen willst,
was der Server fuer einen HTTP-Head schickt,
kannst Du natuerlich auch
http://cgi.w3.org/cgi-bin/headers
oder
http://www.schroepl.net/cgi-bin/http_trace.pl
benuetzen...
Oder wenn Du im Browser sehen willst, was der Client dem Server gerade geschickt hat:
<?php ### headers.php ###
$_headers = getallheaders();
echo "<pre>";
print_r($_headers);
echo "<hr>POST<br />\n";
?>
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo,
wie kann man mit php das alter (last modify) einer datei bestimmen, die NICHT auf dem Server liegt, auf welchem das php-script läuft?
Ist die Datei auf einem Webserver?
JA
Ist es eine statische Datei?
Möglich, aber nicht notwendigerweise.
Dann hast Du gute Chancen, das Last-Modified-Datum
aus dem HTTP-Head auslesen zu koennen.Setze mit fsockopen() eine HEAD oder GET Abfrage
auf die URL ab und werte den zurueckgegebenen
HTTP-Head aus.
Hi Thomas
leider halfen mir die Links nicht weiter. Ich hab's mal getestet mit der HEADER-Abfrage, aber alle Abfragen bleiben leer (keine Antwort...)
Was ist eigentlich bei php so schwer daran das Alter einer Datei zu bestimmen, mit Perl gehts doch auch ... :-(
Gruß
@ndre@s
Hallo,
Ist es eine statische Datei?
Möglich, aber nicht notwendigerweise.
Bei Dateien, die durch PHP geparst werden, ist
normalerweise kein Last-Modified-Header dabei.
(Dabei spielt es natuerlich keine Rolle,
ob die Datei ***.html oder ***.php heisst...)
leider halfen mir die Links nicht weiter. Ich hab's mal getestet mit der HEADER-Abfrage, aber alle Abfragen bleiben leer (keine Antwort...)
Keine Antwort wuerde bedeuten:
Um welche Datei/Ressource (URL) geht es denn?
Was ist eigentlich bei php so schwer daran das Alter einer Datei zu bestimmen, mit Perl gehts doch auch ... :-(
Es ist nicht schwer, solange die Datei auf dem gleichen
Rechner liegt wie das Skript und letzteres Zugriff auf
erstere hat...
Dann gibt es naemlich filemtime() und stat():
http://www.php.net/manual/de/function.filemtime.php
http://www.php.net/manual/de/function.stat.php
http://www.php.net/manual/en/function.filemtime.php
http://www.php.net/manual/en/function.stat.php
Ein schwacher Trost:
Ab PHP 5.0.0 wird es vielleicht moeglich, auch "http://"-URLs
mit filemtime() oder stat() zu verwenden...
Gruesse,
Thomas
Hi Andreas!
wie kann man mit php das alter (last modify) einer datei bestimmen, die NICHT auf dem Server liegt, auf welchem das php-sacript läuft?
Weiss ich nicht. ABER: Wenn der Hintergrund folgender ist,
dass du regelmaessig upgedatete Dateien einbindest bzw.
also ein "Last Update=xy" angebenmoechtest von einer Sache,
die du halt regelmaessig erstellen laesst...
Wir machen das so, dass wir von dem Skript, das uns
regelmaessig Dateien neu baut nach erfolgreichem Raus-
schreiben der erzeugten Datei noch eine Minidatei
'Timestamp' erzeugen, die wir dann gesondert auslesen
(bei uns: einlesen, sprich via include in den Text
einbinden) lassen.
DAS hat den Vorteil, dass das Rausschreiben der Datenseiten
auch schon mal schieflaufen kann. Dann hat man u.U. eine
Ergebnisdatei mit einem neuen Speicherdatum, aber die
enthaltenen Daten sind (z.T.) noch auf aelterem Stand.
Und dann ist es korrekter, der 'Timestamp' wird nicht
erneuert.
Hoffe, ich konnte meinen Punkt klarmachen.
Herzliche Gruesse
Nicola
wie kann man mit php das alter (last modify) einer datei bestimmen, die NICHT auf dem Server liegt, auf welchem das php-sacript läuft?
Weiss ich nicht. ABER: Wenn der Hintergrund folgender ist,
dass du regelmaessig upgedatete Dateien einbindest bzw.
also ein "Last Update=xy" angebenmoechtest von einer Sache,
die du halt regelmaessig erstellen laesst...
Hi Nicola
genau dass ist nicht der Fall. Es geht darum Links zu überprüfen, wenn sich die dahinter liegende Datei geändert hat.
Gruß
@ndre@s