Ankündigung

Einklappen
Keine Ankündigung bisher.

str_replace mit Datein

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

  • str_replace mit Datein

    Hallo,
    ich lese gerade sehr interessiert ein Buch von Markt & Technik über PHP & MySQL. Zufällig kam gerade bei einem Script der String str_replace vor.

    Das ganze heißt ja Suchen/Ersätzen ... also mal ein kleiner Script:
    PHP-Code:
    <?php
    $suchen 
    ss;
    $ersaetzen ß;
    $text "Ich finde Schalke scheisse.";
    //string str_replace
    str_replace($suchen$ersaetzen$text);
    echo 
    $text;
    ?>
    (Den Script habe ich gerade selber geschrieben, ist nicht aus dem Buch *stolzsei* ^^)
    Soo jetzt sucht der im Text ss und soll es durch ß ersetzen. Fertig.

    Meine Frage:
    Funktioniert das auch mit mehreren texten, aber jetzt nicht Variablen sondern .htm Datein. Ich habe ca. 150 HTML Datein wo im Body bgcolor="#??????" angegeben ist. Jetzt will ich also

    PHP-Code:
    str_replace(bgcolor="??????"suchenbgcolor="???2??"ersetzeninden Datein1. Datei.htm 2. Datei.htm 3.Datei.htm usw.) 
    Versteht ihr? Also ich möchte die bgcolor nicht alle einzeln manuel in allen Datein, sondern das ganze über das Script machen lassen. Klar ich könnte jetzt auch jede Datei als Variable abspeichern und dann jedes mal neu aufrufen, aber das ist noch mehr Aufwand, als die Datei zu öffnen und dann die bgcolor zu ändern. Aber 150 mal ist einfach zu viel.

    Ich glaube in meinem Script, also 1. Datei.htm 2. Datei.htm usw. man könnte mehrere Variablen durch einen Punkt " . " verbinden.
    mfg Schorschi,
    www.Georg-Schaal.de
    www.WebFUNPark.de

  • #2
    AW: str_replace mit Datein

    natürlich, nimm glob('*.htm') um alle htm dateien in array zu nehmen, öffne die einzelnen dateien, ändern und speichern.

    für die änderung solltest du am besten reguläre ausdrücke verwenden....
    AC/DC Fanpage www.ifyouwantblood.de
    Nein zur Zensur im Internet und anderswo - Anonymous

    Kommentar


    • #3
      AW: str_replace mit Datein

      Zitat von Brian Beitrag anzeigen
      natürlich, nimm glob('*.htm') um alle htm dateien in array zu nehmen, öffne die einzelnen dateien, ändern und speichern.

      für die änderung solltest du am besten reguläre ausdrücke verwenden....
      ja aba öffne die einzelnen datein, ändern und speichern. Toll da wär ich ja wieder beim alten. Oder kann man das auch mit PHP machen. Wie gesagt, kenn mich noch ziemlich wenig damit aus, also hab gerade ein paar Scripte hin gekriegt und weiß gerade wie man solche Sachen wie if/else while -schleifen oder isset klamotten einsetzt.
      mfg Schorschi,
      www.Georg-Schaal.de
      www.WebFUNPark.de

      Kommentar


      • #4
        AW: str_replace mit Datein

        Zitat von Georg-Schaal.de Beitrag anzeigen
        ja aba öffne die einzelnen datein, ändern und speichern. Toll da wär ich ja wieder beim alten. Oder kann man das auch mit PHP machen. Wie gesagt, kenn mich noch ziemlich wenig damit aus, also hab gerade ein paar Scripte hin gekriegt und weiß gerade wie man solche Sachen wie if/else while -schleifen oder isset klamotten einsetzt.
        nö nit per hand öffnen.....


        AC/DC Fanpage www.ifyouwantblood.de
        Nein zur Zensur im Internet und anderswo - Anonymous

        Kommentar


        • #5
          AW: str_replace mit Datein

          Asoo.. mhh kannst du mir jetzt noch ein kleines "Tutorial" Also eine Erklärung für globe schicken?
          Bei php.net hab ich schon geguckt, nur irgendwie ist da nen Bug drin und die Seite lässt sich nur auf Englisch öffnen http://de.php.net/manual/de/function.glob.php
          mfg Schorschi,
          www.Georg-Schaal.de
          www.WebFUNPark.de

          Kommentar


          • #6
            AW: str_replace mit Datein

            Zitat von Georg-Schaal.de Beitrag anzeigen
            Asoo.. mhh kannst du mir jetzt noch ein kleines "Tutorial" Also eine Erklärung für globe schicken?
            Bei php.net hab ich schon geguckt, nur irgendwie ist da nen Bug drin und die Seite lässt sich nur auf Englisch öffnen http://de.php.net/manual/de/function.glob.php
            Die wurde nicht nicht ins deutsche übersetzt. glob ist doch gar einfach, ich gebe dir mal ein anderes Beispiel:
            PHP-Code:
                if (glob("plugins/*.php") == true) {
            echo 
            "es existiert eine PHP-Datei im Verzeichnis plugins";

            Das * ersetzt alle möglichen Zeichen, also z.B. "rss_feed"...
            Sonst kann man sich das wenige, was da steht, ja leicht übersetzen...

            Kommentar


            • #7
              AW: str_replace mit Datein

              mhh cool.
              Mal ein kleiner Versuch für mein Script und dann werd ich mal auf eure Verbesserungsvorschläge hören

              PHP-Code:
              <?php
              $suchen 
              bgcolor=\"#0000CA\";
              $ersaetzen = bgcolor=\"#D8D8D8\";
              $text = glob("*.htm");
              //string str_replace
              str_replace(
              $suchen$ersaetzen$text);
              ?>
              Oder muss ich die Variablen in " setzen? Bin da noch net so geübt

              Klar, man könnte sich jetzt noch mit if absichern, ob überhaupt .htm Datein im Verzeichnis sind. Aber ich glaube für das kleine Script brauch ich das nicht oder?
              Zuletzt geändert von Georg-Schaal.de; 19.10.2007, 17:25.
              mfg Schorschi,
              www.Georg-Schaal.de
              www.WebFUNPark.de

              Kommentar


              • #8
                AW: str_replace mit Datein

                PHP-Code:
                    if (glob("plugins/*.php") == true) {
                echo 
                "es existiert eine PHP-Datei im Verzeichnis plugins";

                unfein...

                PHP-Code:
                    if (!empty(glob("plugins/*.php"))) {
                echo 
                "es existiert eine PHP-Datei im Verzeichnis plugins";

                Oder muss ich die Variablen in " setzen? Bin da noch net so geübt
                alleine der syntax highlighter des boards sollte dich aufklären.
                AC/DC Fanpage www.ifyouwantblood.de
                Nein zur Zensur im Internet und anderswo - Anonymous

                Kommentar


                • #9
                  AW: str_replace mit Datein

                  Oh oh, du musst noch viel lernen. Schon dein erstes Beispiel wird nicht funktionieren:
                  $suchen = ss;
                  Wenn dann $suchen = "ss";

                  An der Färbung der PHP-Code-Box siehst du übrigens schon, dass dein Code falsch ist. Es gibt einige Methoden, Anführungszeichen korrekt mit anzeigen zu lassen:
                  Code:
                  echo '"hallo"';
                  echo "\"hallo\"";
                  echo "'hallo'";
                  echo <<<form
                  "hallo"
                  >>>
                  Bei letzten bin ich mir unsicher, dass benutze ich nie.
                  Weiterhin hat dein Code keinen Sinn!
                  glob() gibt ein array zurück!
                  Dann sollte man immer vorher prüfen, denn wenn du das Script mal nicht benutzt und es zu einer falschen Eingabe kommt, die du nicht beachtest hast, ist pumpe.
                  Dann brauchst du noch eine Prüfung, ob es funktioniert hat und eine Funktion, die die .html-Datei umbenennt.
                  Alles aber zu finden bei php.net.
                  Wenn dein Buch nicht so toll ist:
                  Mittels XAMPP könnt ihr PHP bei euch auf dem Rechner installieren.



                  Da schau ich sogar jetzt immer mal rein...

                  Kommentar


                  • #10
                    AW: str_replace mit Datein

                    PHP-Code:
                    <?php

                    $suchen 
                    "bgcolor=\"#0000CA\"";
                    $ersetzen "bgcolor=\"#D8D8D8\"";
                    $text glob("*.htm");

                    str_replace($suchen$ersetzen$text);

                    ?>
                    ersetzen schreibt man mit e und nicht mit ä (ae)

                    Wobei du das nicht durch bgcolor="#d8d8d8" ersetzen solltest, sondern mit style="background-color: #d8d8d8;" !


                    greetz

                    //Edit: Ouh, mi-schi war schneller. Wobei meins auch nicht richtig sein muss, lerne auch gerade PHP.
                    sigpic

                    Kommentar


                    • #11
                      AW: str_replace mit Datein

                      Zitat von Brian Beitrag anzeigen
                      PHP-Code:
                          if (glob("plugins/*.php") == true) {
                      echo 
                      "es existiert eine PHP-Datei im Verzeichnis plugins";

                      unfein...

                      PHP-Code:
                          if (!empty(glob("plugins/*.php"))) {
                      echo 
                      "es existiert eine PHP-Datei im Verzeichnis plugins";

                      alleine der syntax highlighter des boards sollte dich aufklären.
                      Ich hatte es auch genau anders herum:

                      PHP-Code:
                          if (glob("plugins/*.php") == false) {
                      echo 
                      "es existiert eine PHP-Datei im Verzeichnis plugins";

                      Hatte es nur schnell geändert......

                      Kommentar


                      • #12
                        AW: str_replace mit Datein

                        alsoo..
                        jetzt weiß ich immerhin schon wie man mit Anführungszeichen arbeitet

                        Tja.. wenn in dem Buch "noch" nicht Arrays vorkam, dann sollte es schwer sein, direkt zu wissen was das ist.

                        Dann brauchst du noch eine Prüfung, ob es funktioniert hat und eine Funktion, die die .html-Datei umbenennt.
                        Die Prüfung brauch ich nicht wirklich oder?? Ich seh es ja. Und warum soll die Datei in eine .html umgeändert werden? .htm ist doch ein gäniges Format oda

                        Also kann mir dann noch jemand helfen das glob("*.htm") richtig einzubauen?
                        mfg Schorschi,
                        www.Georg-Schaal.de
                        www.WebFUNPark.de

                        Kommentar


                        • #13
                          AW: str_replace mit Datein

                          Richtig heißt es .html Ich glaube Microsoft (Frontpage) hat eine Eigenkreation draus gemacht und .htm benutzt.
                          Die Erklärung von mir vorhin war ziemlich dumm, ich hatte wenig Zeit.
                          Wenn jemand anderes, als du, deine Script benutzt, kann es schnell passieren, dass ihm, bei z.B. Falscheingabe, ein für ihn unverständlicher Code ausgeworfen wird, womöglich das Script doch noch weiter läuft und ein völliges Chaos erstellt.
                          Darum empfehle ich dir, schreibe das man den Anfang der PHP Datei:
                          error_reporting(E_ALL);
                          Weiterhin empfehle ich dir, für die Übersichtlichkeit, die PEAR-Schreibweise von Anfang an mit anzugewöhnen: http://pear.php.net/
                          Aber: Ich mache auch nicht alles, wie es dort steht, aber sehr viel.
                          Eigentlich müsste dein Buch das Thema PAER mit behandeln. Wenn nicht, ist es schlecht. Meine Broschüren haben das Thema mit behandelt und es war sehr einfach zu merken, weil es auch logisch ist.
                          Ich habe am Anfang auch schlampig gecodet, dann gab es bei all-inkl.de eine neue PHP-Version (oder die config wurde verändert) und bums, dass Script gab nur noch einen Fehler aus.
                          Mal das Scenario deines Codes:
                          PHP-Code:
                          glob("*.htm"
                          gibt wenn es keine .htm-Seite im Verzeichnis liegt, false aus, ABER NICHT ALS STRING!
                          Wenn eine .htm Datei existiert, gibt es Array aus, ALS STRING.
                          Dann willst du mit str_replace nach bgcolor="#0000CA" in dem String "Array" suchen. Das wir nicht gefunden und kann auch nicht mit bgcolor="#D8D8D8" ersetzt werden. Als Rückgabewert erhältst du .... NICHTS. Keine Fehlermeldung (außer womöglich, wenn str_replace mit dem false nichts anfangen kann).
                          Wenn du eine Datei im Verzeichnis hast und $text['0'] durchsuchen würdest, hätte das immer noch keinen Sinn.
                          Denn du ersetzt lediglich den Dateinamen.
                          Das wäre ein mögliches Beispiel, einen Dateinamen zu ersetzen:
                          PHP-Code:
                          $suchen 'ich';
                          $ersetzen 'du';
                          foreach (
                          glob("*.htm") as $dateiname) {
                          $neuerdateiname str_replace($suchen$ersetzen$dateiname);
                              if (
                          rename($dateiname$neuerdateiname) == true) {
                                  echo 
                          "Der Dateiname" $dateiname " wurde erfolgreich in " $neuerdateiname " umbenannt.\n";
                              } else {
                                  echo 
                          "Die Datei " $dateiname " konnte nicht umbenannt werden.\n";
                              }

                          Wenn du die Datei öffnen willst und Zeile für Zeile durchsuchen willst, ob bgcolor="#0000CA" gefunden wird, brauchst du einiges mehr an Funktionen. Das ist für einen absoluten Anfänger viel zu schwer. Ich weiß noch, wo ich angefangen hatte, habe ich auch nur Brutto- und Nettowert berechnet und andere sinnlose, aber einfache Script erstellt.

                          (Ich hoffe, ich habe jetzt keine Fehler: Nicht getestet)

                          EDIT: Wenn ich mir das Script oben überlege, eigentlich immer noch ziemlich sinnlos....
                          Zuletzt geändert von mi-schi; 19.10.2007, 19:35.

                          Kommentar


                          • #14
                            AW: str_replace mit Datein

                            mhh alles klar Mi-schi. Ich denk mal, ich sollte erstmal das Buch mir aneignen und dann kann ich weiter sehen. Momentan kommt im Buch cookies dran. Also bin jetzt im Kapitel 3.

                            Aber vielen Dank für deine Bemühungen. Es war auch nur so eine Idee.
                            mfg Schorschi,
                            www.Georg-Schaal.de
                            www.WebFUNPark.de

                            Kommentar


                            • #15
                              AW: str_replace mit Datein

                              Zitat von Georg-Schaal.de Beitrag anzeigen
                              mhh alles klar Mi-schi. Ich denk mal, ich sollte erstmal das Buch mir aneignen und dann kann ich weiter sehen. Momentan kommt im Buch cookies dran. Also bin jetzt im Kapitel 3.

                              Aber vielen Dank für deine Bemühungen. Es war auch nur so eine Idee.
                              Komisches Buch. Arrays, Anführungszeichen... sind viel wichtiger als cookies, da die auch schon wieder ersetzt werden mit sessions....

                              Kommentar

                              homepage-forum.de - Hilfe für Webmaster! Statistiken

                              Einklappen

                              Themen: 57.203   Beiträge: 432.036   Mitglieder: 29.639   Aktive Mitglieder: 30
                              Willkommen an unser neuestes Mitglied, Shalin.

                              Online-Benutzer

                              Einklappen

                              815 Benutzer sind jetzt online. Registrierte Benutzer: 1, Gäste: 814.

                              Mit 9.939 Benutzern waren am 17.05.2023 um 21:38 die meisten Benutzer gleichzeitig online.

                              Die neuesten Themen

                              Einklappen

                              Die neuesten Beiträge

                              Einklappen

                              Lädt...
                              X