AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [php] - Überprüfen ob Datei existiert
Thema durchsuchen
Ansicht
Themen-Optionen

[php] - Überprüfen ob Datei existiert

Ein Thema von xZise · begonnen am 8. Aug 2007 · letzter Beitrag vom 12. Aug 2007
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

[php] - Überprüfen ob Datei existiert

  Alt 8. Aug 2007, 13:12
Hallo DP

Ich möchte überprüfen ob eine Datei auf einen fernen Server existiert.

Ich habe schonmal gegooglet.
Und
Code:
file_exists
funktioniert schonmal

Hier der Link:
http://xzise.xz.ohost.de/test2.html

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>
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: [php] - Überprüfen ob Datei existiert

  Alt 8. Aug 2007, 13:16
Welche frage hast du?
Ansgar
  Mit Zitat antworten Zitat
Mark90
(Gast)

n/a Beiträge
 
#3

Re: [php] - Überprüfen ob Datei existiert

  Alt 8. Aug 2007, 20:04
mit deiner frage ist deine Antwort doch eigentlich geklärt!

Delphi-Quellcode:

 if (file_exists($Path || website usw..))
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: [php] - Überprüfen ob Datei existiert

  Alt 8. Aug 2007, 20:12
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#5

Re: [php] - Überprüfen ob Datei existiert

  Alt 9. Aug 2007, 18:33
Zitat von xZise:
Ich möchte überprüfen ob eine Datei auf einen fernen Server existiert.
Wie genau brauchst du die Frage noch?


Zitat von Mark90:
mit deiner frage ist deine Antwort doch eigentlich geklärt!

Delphi-Quellcode:

 if (file_exists($Path || website usw..))
Nein! file_exists funktioniert nur für das eigene Dateisystem. Also != ferner Server.

Zitat von alcaeus:
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.
Aha...

Zitat von alcaeus:
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).
Okay. Ich soll also einfach als $url http://www.google.de/index.html angeben?

Den Request müsstest du mir erklären.

[edit]Nur mit file_exists funktionierts nicht[/edit]
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: [php] - Überprüfen ob Datei existiert

  Alt 9. Aug 2007, 20:16
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:
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;
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

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: [php] - Überprüfen ob Datei existiert

  Alt 9. Aug 2007, 20:20
Viele Freehoster haben die Socket-Funktionen übrigens deaktiviert. Könnte mir gut vorstellen, dass das bei Ohost auch so ist.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#8

Re: [php] - Überprüfen ob Datei existiert

  Alt 10. Aug 2007, 19:06
Ist aus sicherheitsgründen deaktiviert.
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: [php] - Überprüfen ob Datei existiert

  Alt 12. Aug 2007, 11:24
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz