Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] (Rekursives) suchen und ersetzen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] (Rekursives) suchen und ersetzen

    Hallo,

    ich würde gerne in mehreren (HTML-)Dateien die Pfade von relativ zu absolut umschreiben. Es muss also zB "images/" zu "/images/" umgeschrieben werden. Ich habe dafür folgendes geschrieben:
    PHP-Code:
    $path "test.html";
    $datei file_get_contents($path);
    file_put_contents($pathstr_replace('src="images/''src="/images/'$datei)); 
    Das klappt soweit auch ganz gut. (Wobei ich mir nicht sicher bin, ob str_replace hier richtig am Platz ist...)
    Nun möchte ich nicht nur "images/" ersetzen, sondern auch "css/" und die Funktion auf alle Dateien in einem Ordner anwenden.
    Wäre super, wenn mir jemand hilft!

  • #2
    Mittels einem RecursiveDirectoryIterator kannst du eine Verzeichnis-Struktur traversieren und dir die Dateien rauspicken die du braucht

    -> Verzeichnisse (rekursiv) auslesen mit den Iteratoren der SPL - Codeschnipsel

    und dann halt str_replace mit 2 arrays füttern die enthalten was du durch was ersetzen willst.
    [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
    | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

    Kommentar


    • #3
      Oder Du benutzt einfach basepath.
      [COLOR="#F5F5FF"]--[/COLOR]
      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
      [COLOR="#F5F5FF"]
      --[/COLOR]

      Kommentar


      • #4
        So ich hab es jetzt fast geschafft.
        Allerdings bekomme ich es nicht hin, str_replace mit zwei Arrays "zu füttern"...

        PHP-Code:
              $dir openDir("test"); 
                    while (
        $file readdir($dir)) { 
                    if (
        $file != "." && $file != "..") { 
                    if (
        strstr($file".html")) { 
                        
        $name explode("."$file); 
         
                        
        $datei file_get_contents("test/$file");
                        
        file_put_contents("test/$file"str_replace('src="bilder/''src="/bilder/'$datei));

                    }
                }
            }
        closedir($dir); 
        Kann mir da jemand helfen?

        Kommentar


        • #5
          Du Sagst Relativ zu Absolut, aber ich Bezweifle, dass /bilder/ Absoluter ist als bilder/
          [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

          Kommentar


          • #6
            Naja, im Grunde genommen ist es eine absolute Pfadangabe, die relativ zur Basis-URI ist...

            Kommentar


            • #7
              Und genau sowas nenne ich Relativ.
              Außerdem kenne ich die Form ./ordner/datei.abc oder ordner/datei.abc, aber /ordner/datei.abc habe ich noch nie benutzt.

              Absolut wäre http://abc.de/ordner/datei.abc
              [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

              Kommentar


              • #8
                tklausl, nur weil Du etwas nicht kennst...
                [COLOR="#F5F5FF"]--[/COLOR]
                [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                [COLOR="#F5F5FF"]
                --[/COLOR]

                Kommentar


                • #9
                  Mal das ganze mit ./ und / weggelassen, eine Relative URL ist IMMER Relativ zur derzeitigen Adresse.
                  [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

                  Kommentar


                  • #10
                    / ist nicht gleich ./ !! Bspw. wird aus einem Stylesheet in einem Unterordner anders mit ./ und / auf urls verwiesen.
                    [COLOR="#F5F5FF"]--[/COLOR]
                    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                    [COLOR="#F5F5FF"]
                    --[/COLOR]

                    Kommentar


                    • #11
                      Ok. Danke für die Hinweise.
                      Aber zurück zur Frage:
                      PHP-Code:
                      file_put_contents("test/$file"str_replace('src="bilder/''src="/bilder/'$datei)); 
                      Wie bekomme ich jetzt mehrere Änderungen auf einmal hin?

                      Kommentar


                      • #12
                        Zitat von 9999 Beitrag anzeigen
                        Wie bekomme ich jetzt mehrere Änderungen auf einmal hin?
                        In dem du Arrays als Parameter für str_replace nutzt.

                        Wenn du damit immer noch ein Problem hast - dann beschreibst du dieses bitte vernünftig, nicht mit „ich bekomme es nicht hin“.
                        [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                        Kommentar


                        • #13
                          Zitat von 9999 Beitrag anzeigen
                          Aber zurück zur Frage:
                          PHP-Code:
                          file_put_contents("test/$file"str_replace('src="bilder/''src="/bilder/'$datei)); 
                          Wie bekomme ich jetzt mehrere Änderungen auf einmal hin?
                          Du kannst Str_replace auch Arrays mitgeben, falls du das meintest.

                          Warum änderst du eigentlich nicht gleich den Quelltext, anstatt das jedesmal dynamisch durchzuführen?

                          Zitat von tkausl
                          Du Sagst Relativ zu Absolut, aber ich Bezweifle, dass /bilder/ Absoluter ist als bilder/
                          Dann habe ich für dich etwas zum Lesen:
                          SELFHTML: HTML/XHTML / Allgemeine Regeln für HTML / Referenzieren in HTML

                          Kommentar

                          Lädt...
                          X