[PHP] is_file auf anderen Server anwenden

V1tzl1

Lt. Junior Grade
Registriert
Sep. 2004
Beiträge
384
Hi leutz, hab mal wieder ein Problem...
Ich will auf meiner Seite einige Downloads anbieten.
Allerdings benutze ich drei verschiedene Server
Server 1:
Sehr kleiner Speicherplatz / Traffic, hohe Verfügbarkeit(dort liegt die eigentliche Seite)

Server 2:
Hoher Speicherplatz / ne Menge Traffic hohe Geschw. öfter mal off (Da liegen die Downloaddateien drauf)

Server 3: Genug Speicherplatz / unlimited Traffic / schlechter Upload (Da liegen Die Dateien nochmal Drauf)

Jetz will ich, dass das Skript auf Server 1 prüft, ob die verlinkte Datei auf Server 2 verfügbar ist (mit is_file).
Ist das nicht der fall prüft er, ob die datei auf Server 3 liegt (wieder mit is_file)

Wenn er die Datei findet, schreibt das Script den Link dazu, wenn nnicht, schreibt es, dass alle Server nicht erreichbar sind.

Soviel zur Theorie, in der Praksis sind zur Zeit alle Server online (per Browser getestet)
Das Script meldet aber immernoch, beide nicht erreichbar :(

Ich hoffe jemand kann mir helfen

Hier der
PHP:
<?php
 
...
if($link == "" or $link == " " or $link == "0")

{

$Link = "<i>Noch nicht fertig</i>";

}

elseif(!is_file($link))

{

if(!is_file($link2))

{

$Link = "<i>Beide Download-Server sind nicht erreichbar</i>";

}

else

{

$Link = "<a href=\"".$link2."\" target=_blank>Download vom alternativ Server</a>";

}

}

else

{

$Link = "<a href=\"".$link."\" target=_blank>Download</a>";

}
echo $Link;
?>
 
Also die korrektere Methode für dein Vorhaben wäre wohl file_exists(), wobei ich bezweifle, dass beide auf externen Servern funktionieren. :rolleyes:

Gibt glaube ich Funktionen, die auch mit URLs arbeiten, aber mir fallen die jetzt nicht ein. :(

Notfalls verwende einfach die FTP-Funktionen von PHP.


Also: mit fopen() kann man auch URLs aufmachen, also mit fopen() einfach schauen, ob du die Datei aufmachen kannst.
 
Zuletzt bearbeitet:
Ich glaube dass das grundsätzlich nur geht (also Serverübergreifend) wenn die entsprechenden Rechte für das Verzeichnis gesetzt sind.

Ist aber grundsätzlich interessant, in wieweit man Dateien mit PHP auf anderem Systemen bearbeiten kann also schreiben etc. und wenn, wie.

Also Ihr Experten, sagt mal was dazu!
 
Also mich würd das auch mal interressieren, die nötigen rechte könnte ich mir setzen, ihr müsst mir nur sagen, wie das geht und was genau geändert werden müsste
 
Wenn du beide Server als Netzwerkshare ins Dateisystem des Webservers einbindest (ob nun Netzlaufwerk unter Windows oder mount unter Unix) müsstest du mit file_exists() weiterkommen.
Damit hättest du das Problem mit der Nichtverfügbarkeit aber nur um eine Ebene verschoben.
Alternativ mit PHP fopen auf ne URL aufrufen. Wenns klappt ist die Datei da.
Bin mal gespannt was davon klappt.

HTH,Erazor
 
Hmm Problem, ich hab nur auf einen Server wirklich vollen Remote zugriff, die anderen kann ich nur per konfig ebene editieren.


Die Methode mit fopen wür mich interessieren, schreib mal bitte den Code
 
Zuletzt bearbeitet: (deutschen php.net Server verlinkt)
So was hatte ich mir schon gedacht, so müste es jetz aber klappen, danke ...
 
Zurück
Oben