Mirko: Skript durchsuchen und Text hinzufügen

Hi,

gibt es eine Möglichkeit ein Skript zu schreiben das HTML- und PHP-Dateien nach Bildern durchsuchen kann und überall dort wo ein Bild ist, ein alt="text" hinzufügt?

Ist das relativ einfach zu lösen? Danke im Voraus!

Grüße Mirko!

  1. Hallo Mirko.

    gibt es eine Möglichkeit ein Skript zu schreiben das HTML- und PHP-Dateien nach Bildern durchsuchen kann und überall dort wo ein Bild ist, ein alt="text" hinzufügt?

    Sicher ist dies möglich.

    Du solltest zuerst einmal das jeweilige Verzeichnis einlesen (glob, scandir und Konsorten) um eine Liste aller zu bearbeitenden Dateien zu erhalten.

    Dann durchläufst du diese und holst dir bei jeder Datei erst einmal den Dateiinhalt (z. B. per file_get_contents). In der resultierenden Zeichenkette ersetzt du nun per str_replace „<img“ durch „<img alt="text"“.

    Hiernach schreibst du nun die modifizierte Zeichenkette wieder zurück in die zugehörige Datei. Dies kannst du mit file_put_contents oder ansonsten mit fopen und Konsorten bewerkstelligen.

    Dir ist aber bewusst, dass du auf diese Art und Weise unmöglich passende Alternativtexte für sämtliche in HTML-Dokumenten eingebundenen Grafiken erzielen kannst?

    Einen schönen Dienstag noch.

    Gruß, Mathias

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    debian/rules
    1. Hallo Mathias,

      danke schon mal für den Lösungsansatz. Ja, das Problem ist mir bewusst. Könnte man es denn so machen das immer der Dateiname der jeweiligen Grafik genommen wird? Das wäre ja schon mal was.

      1. Hallo Mirko.

        Ja, das Problem ist mir bewusst. Könnte man es denn so machen das immer der Dateiname der jeweiligen Grafik genommen wird? Das wäre ja schon mal was.

        Wenn der Dateiname in etwa ausdrückt, was man auf dem Bild sehen kann, dann ist dies durchaus eine in Betracht zu ziehende Möglichkeit. Der Dateiname steht dir ja im jeweiligen Schleifendurchlauf zur Verfügung, du könntest ihn nun also noch etwas lesbarer gestalten (-, _, … durch Leerzeichen ersetzen, ggf. ucfirst anwenden, …) und diesen resultierenden Text als Wert fürs alt-Attribut setzen.

        Einen schönen Dienstag noch.

        Gruß, Mathias

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        debian/rules
        1. Hm...habe mal gerade nachgesehen. Ist leider nicht meine Seite um die es geht. Die Grafiken sind fast alle in einer DB abgespeichert. Ich müsste also einer Tabelle in der Datenbank eine Spalte mit dne Alternativtexten hinzufügen. Dann die Dateien durchsuchen lassen und überall wo eine Grafik eingebunden wird, diesen alt-text hinzufügen lassen. Wäre doch die beste Lösung, oder?

          1. Hallo Mirko.

            Die Grafiken sind fast alle in einer DB abgespeichert. Ich müsste also einer Tabelle in der Datenbank eine Spalte mit dne Alternativtexten hinzufügen. Dann die Dateien durchsuchen lassen und überall wo eine Grafik eingebunden wird, diesen alt-text hinzufügen lassen. Wäre doch die beste Lösung, oder?

            Wenn du so den jeweiligen Alternativtext eindeutig der jeweiligen Grafik zuordnen kannst, ja.

            (Bzgl. Datenbankfragen kann ich dir aber nicht weiterhelfen.)

            Einen schönen Dienstag noch.

            Gruß, Mathias

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            debian/rules
            1. Nein, wäre ja eigentlich unnötiger Mehraufwand. Am schnellsten wäre wohl:

              Dateien durchsuchen und dann nur alt-text hinzufügen. Der alttext wäre dann der abgeschnitte Dateinname. Müsste dann z.B. bei /html/bilder/bild1.jpg -> bild1 sein. Wie bekomme ich das hin? Mit substr() muss ich ja die start und stoppposition angeben, aber das geht ja nicht, da sie immer unterschiedlich ist. Wie könnte ich das in den Griff bekommen?

              1. Hallo Mirko.

                Der alttext wäre dann der abgeschnitte Dateinname. Müsste dann z.B. bei /html/bilder/bild1.jpg -> bild1 sein.

                Und gerade solch ein Alternativtext wäre sinnlos. Wärest du blind, was würde dir dann „bild1“ über die jeweilige Grafik sagen? Genau, rein garnichts.

                In einem solchen Fall ist es meiner Ansicht nach sinnvoller, gar keinen (lies: alt="") an Stelle eines unsinnigen Alternativtextes anzugeben.

                Eine Maschine kann nun einmal nicht automatisiert Aufgaben übernehmen, für welche ein menschliches Erkennungsvermögen und Fantasie erforderlich ist. Wenn du wirklich Wert auf sinnvolle Alternativtexte legst und nicht nur den Validator befriedigen willst, wirst du nicht umhin kommen, den Alternativtext für jede Grafik manuell zu notieren.

                Was dir nun wichtiger ist, musst du entscheiden.

                Wie bekomme ich das hin? Mit substr() muss ich ja die start und stoppposition angeben, aber das geht ja nicht, da sie immer unterschiedlich ist. Wie könnte ich das in den Griff bekommen?

                In diesem Falle könntest du einfach basename nutzen.

                Einen schönen Dienstag noch.

                Gruß, Mathias

                --
                sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                debian/rules