Günter: Rename Bilder

Guten Abend

Ich suche ein Script, mit dem ich auf einem Windows Sever alle Dateien mit einem PHP Script umbennen kann. Ich habe Admin Rechte und möchte alle Bilder (auch in Unterordnern) neu benennen lassen via Script. Z.b alle Bilder druchnummerieren. Ich wäre für Hilfe sehr dankbar.

Liebe Grüße
Günter

  1. Lieber Günter,

    Du findest sicherlich die ein oder andere Verzeichnis-Listing-Funktion im hiesigen Archiv. Eine solche Funktion liefert Dir ein Array mit Strings zurück, die jeweils den Pfad zu einer Datei enthalten (je nach Script sind auch Verzeichnis-Einträge enthalten).

    Diese "Liste" kannst Du mit den üblichen Stringfunktionen daraufhin prüfen, ob die Dateiendung Deinen Vofgaben entspricht, um dann mittels rename() diese Datei umzubenennen.

    Was genau gelingt Dir nicht? Wo hast Du noch Verständnisschwierigkeiten?

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Ich suche ein Script, mit dem ich auf einem Windows Sever alle Dateien mit einem PHP Script umbennen kann.

    es ist nicht schwer mit php im dateisystem zu arbeiten. im php-manual gibts zwei bereiche die, die für dich relevaten funktionen zusammenfassen:
    http://de2.php.net/manual/de/ref.dir.php
    http://de2.php.net/manual/de/ref.filesystem.php

    mit der funktion "pathinfo" (http://de2.php.net/manual/de/function.pathinfo.php) kannst du die dateiendung rausfinden und danach entscheiden, ob es sich um eine bilddatei handelt.

    wenn du in alle verzeichnisse möchtest, schreibst du am besten eine rekursive funktion.

    alles weitere findest du schon.
    gruß, johannes

    1. Hello,

      mit der funktion "pathinfo" (http://de2.php.net/manual/de/function.pathinfo.php) kannst du die dateiendung rausfinden und danach entscheiden, ob es sich um eine bilddatei handelt.

      Die Endung einer Datei ist nur ein Indiz dafür, was drinstecken könnte, aber es kann in einer *.gif-Datei auch leicht ein PHP-Script oder etwas anderes stecken.

      mit getimagesize() http://de.php.net/manual/en/function.getimagesize.php kann man schon etwas genauer hingucken. :-)

      wenn du in alle verzeichnisse möchtest, schreibst du am besten eine rekursive funktion.

      ... und musst darauf achten, dass es keine Links auf höhere Verzeichnisse im durchsichten Teilbaum gibt, sonst könnte sich eine falsch geschriebene Funktion leicht aufhängen (zirkulärer Verlauf).

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. tom hat recht!
        aber wie kann man links von echten verzeichnissen unterscheiden?

        gruß, johannes

        1. Hello,

          aber wie kann man links von echten verzeichnissen unterscheiden?

          Man kann entweder die verlinkten Verzeichnisse ausschließen, indem man zusätzlich zu is_dir()

          is_link()    http://de.php.net/manual/en/function.is-link.php

          benutzt, oder man führt eine Liste der bereits durchsuchten Verzeichnisse mit, in der immer der

          realpath()   http://de.php.net/manual/en/function.realpath.php

          eingetragen wird. Bevor man nun in den vermeintlich neuen Verzeichniszweig eintritt, prüft man, ob dieser bereits in der Liste enthalten ist. Wenn ja, dann überspringt man diesen Scan.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. Yerf!

            Man kann entweder die verlinkten Verzeichnisse ausschließen, indem man zusätzlich zu is_dir()

            is_link()    http://de.php.net/manual/en/function.is-link.php

            Hm... funktioniert das auch unter Windows? Ist an dem Handbucheintrag nicht ersichtlich (die Kommentare schweigen sich auch darüber aus, die *.lnk-Files sind ja was anderes als die echten Sym-Links, die man per "linkd" anlegen kann)

            Gruß,

            Harlequin

            --
            <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->