![]() |
[php] - Überprüfen ob Datei existiert
Hallo DP :)
Ich möchte überprüfen ob eine Datei auf einen fernen Server existiert. Ich habe schonmal gegooglet. Und
Code:
funktioniert schonmal ;)
file_exists
Hier der Link: ![]() Und hier der Quelltext:
Code:
<html>
<head> <title>php test file exists</title> </head> <body> Existiert eine Datei? <? $root = "http://xzise.xz.ohost.de/"; $url = "inhalt.html"; echo "[b]$root$url[/b] "; if (file_exists($url)) { echo "Ja"; } else { echo "Nein"; } echo " "; $url="index.html"; echo "[b]$root$url[/b] "; if (file_exists($url)) { echo "Ja"; } else { echo "Nein"; } echo " "; $url = "http://www.google.de/index.html"; echo "[b]$url[/b] "; $file = fopen($url, "r"); if(!$file) { echo "Ja"; } else { echo "Nein"; } fclose($file); ?> </body> </html> |
Re: [php] - Überprüfen ob Datei existiert
Welche frage hast du?
|
Re: [php] - Überprüfen ob Datei existiert
mit deiner frage ist deine Antwort doch eigentlich geklärt!
Delphi-Quellcode:
if (file_exists($Path || website usw..)) |
Re: [php] - Überprüfen ob Datei existiert
Damit der Code funktioniert muessen die URL-wrappers fuer fopen aktiviert sein - jeder halbwegs vernuenftige Hoster deaktiviert dieses Feature allerdings, da dadurch auch Remote-File-Inclusion-Luecken moeglich werden. Der sicherste Weg ist also eine Kombination aus file_exists() (falls allow_url_fopen aktiviert ist), und als Fallback die Socket-Funktionen (einfach nen HTTP-Request an den Server jagen und pruefen ob ein 404 zurueckkommt).
Greetz alcaeus |
Re: [php] - Überprüfen ob Datei existiert
Zitat:
Zitat:
Zitat:
Zitat:
![]() Den Request müsstest du mir erklären. [edit]Nur mit file_exists funktionierts nicht[/edit] |
Re: [php] - Überprüfen ob Datei existiert
Nein - wenn es nicht funktioniert verwendest du die Socket-Funktionen und machst es "von Hand", sprich:
du willst wissen ob h**p://www.foobar.com/test.txt existiert. Also:
Code:
Das wars eigentlich...beachte aber dass der Code grad eben im Browserfenster zusammengeschrieben wurde und deshalb nicht getestet ist. Einfach mal die Funktionen angucken, überlegen und evtl. korrigieren ;)
if (!$fp = fsockopen('www.foobar.com', 80, $errno, $errstr, 5))
{ die('Error connecting to foobar.com'); } fwrite($fp, "GET /test.txt HTTP/1.1\r\n"); fwrite($fp, "HOST: www.foobar.com\r\n"); fwrite($fp, "Connection: close\r\n"); $header = ''; $status = 404; while ($data = fgets($fp, 1024)) { if (substr($data, 0, 9) !== 'HTTP/1.0 ') { continue; } $status = (int) substr($data, 9, 3); } fclose($fp); return ($status == 200) ? true : false; Greetz alcaeus |
Re: [php] - Überprüfen ob Datei existiert
Viele Freehoster haben die Socket-Funktionen übrigens deaktiviert. Könnte mir gut vorstellen, dass das bei Ohost auch so ist.
|
Re: [php] - Überprüfen ob Datei existiert
Ist aus sicherheitsgründen deaktiviert.
|
Re: [php] - Überprüfen ob Datei existiert
wenn socket und so aus sind, kannst du das ganze über html und php lösen:
du machst einfach ein iframe wo du die datei reinlädst die du testen willst, dann schauffelst du den quelltext in ne textvariable und prüfst ob 404 forhanden ist oder ein bestimmter tetx datei nicht gefunden. das sollte ganz gut funktionieren außer bei seiten die gleich nen link auf die haupseite setzen anderer weg wäre dir nen ordentlichen webspace zu holen ^^ edit: man könnte auch noch was mit js machen allerdings ist das abhängig ob der benutzer das aktiviert hat, ansonsten hilft dir ein java applet ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz