ralphi: Existenz entfernter Dateien prüfen

Hallo zusammen,

folgendes Problem:
Ich benötige die Schnittmenge (Namen) der Dateien zwischen einem lokalen Server und einem entfernten Server.

Normalerweise würde ich mit:

if (file_exists($urldatei)) {....

arbeiten. oder die dateien temporär copieren mit:

$handle=opendir($urlpfad);
while (false !== ($file = readdir ($handle))) {....

leider funktionieren beide befehle nur bei localen dateien.

copy($filenameweisich, $filelokal);
funktioniert. d.h.  'url-fopen-wrapper' ist ON

kennt jemand einen befehl, der mir ein OK gibt, wenn die entfernte Datei existiert?

grüße ralphi

  1. Hi,

    kennt jemand einen befehl, der mir ein OK gibt, wenn die entfernte Datei existiert?

    da Du von Dateien redest, ist es ausgeschlossen, dass Du HTTP-URLs meinst. Ich nehme also an, Du redest von FTP. Die verschiedenen Funktionen, die Dir hierbei helfen können, findest Du in der Dokumentation.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. hi Cheatah,

      leider gehts nur über http auf den server

      ralphi

      1. Hi,

        leider gehts nur über http auf den server

        HTTP kennt kein Konzept namens "Datei". Es ist nicht möglich, über dieses Protokoll zu erfahren, ob ein Server eine Datei zur Verfügung hat, sofern dieser Server nicht eigens dafür eine Schnittstelle bereit hält. Baue also eine solche.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
      2. Hi,

        leider gehts nur über http auf den server

        die Dateien (Abstraktionsebene Dateisystem) werden im http-Kontext manchmal zu "Ressourcen". Du kannst doch eine http-Ressource adressieren und schaun, ob die Ressource verfuegbar ist oder ob Du einen Fehlercode kriegst.

        Gruss,
        Ludger

        1. Hi Ludger,

          danke für die Antwort.

          so genau weis ich nicht was Du mit:

          Du kannst doch eine http-Ressource adressieren ...

          meinst.
          Kannst Du mir das verbeispielen?

          mit copy($file, $filehome); bekomme ich zwar auch Fehlermeldungen wenn die datei nicht existiert und lass das prog weiterlaufen. aber der timeout ist sehr kurz. beim ca. 20'ten copy bricht er ab.

          Der copy befehl funktioniert (mit http url) wenn ich den dateinamen weis. von dem her wunderts mich, dass es keine weiteren http tauglichen befehle geben soll.

          grüße ralphi

          1. Hi,

            Der copy befehl funktioniert (mit http url) wenn ich den dateinamen weis. von dem her wunderts mich, dass es keine weiteren http tauglichen befehle geben soll.

            es gibt da etwas in PHP, das auf den Namen curl (oder so aehnlich) hoert. Damit kannst Du http-Ressourcen laden. Eventuell musst Du das genannte PHP-Modul noch per zugehoerigen Konfigurationsdatei "aktivieren".

            Gruss,
            Ludger