Probleme mit preg_replace

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

  • Probleme mit preg_replace

    Hallo Forum,

    ich hab jetzt schon einiges gelesen zu dem Thema aber irgendwie werde ich daraus nicht schlau.

    Ich importiere ein externes php-script welches Links in form von ".html" enthält. Diese Links möchte ich jetzt von ".html" in ".php" ändern.
    Soweit ich das verstanden habe ist das durch "preg_replace" oder "str_replace" möglich aber egal was ich bisher ausprobiert habe funktioniert nicht.

    Wäre super nett wenn ihr einem Anfänger da mal unter die Arme greifen könntet!

    [PHP
    <?php
    $inhalt='http://www.meinexternesphp.php';
    $neu = $inhalt;
    $suche = '/php/';
    $ersetze = 'html';
    preg_replace($suche , $ersetze , $neu);
    include($neu);
    ?>
    [/PHP]

  • #2
    PHP-Code:
    $inhalt='http://www.meinexternesphp.php';
    $neu $inhalt
    Is schonma hochgradig praktisch.

    Machs so:
    PHP-Code:
    $inhalt str_replace(".php"".html"$inhalt); 
    Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

    Kommentar


    • #3
      Hallo ArSeN

      vielen Dank für deine Antwort aber das hatte ich auch schon ausprobiert aber damit hat es leider auch nicht funktioniert.

      Kommentar


      • #4
        Dann machst du irgendwas anderes falsch. Poste mal den richtigen Code, und nicht das Testding da oben. Und achte drauf das der PHP-Tag stimmt, damit das Syntaxhighlighting funkt.
        Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

        Kommentar


        • #5
          Das war schon der richtige code nur dass die Adresse des externen php`s geändert ist und ich das ganze als php-inhalt in typo3 habe.

          Das Problem mit deiner Lösung ist dass dann auch aus der adresse der externen .php eine .html wird und diese natürlich nicht existiert und eben eine Fehlermeldung ausgegeben wird.

          Kommentar


          • #6
            Re: Probleme mit preg_replace

            PHP-Code:
            $inhalt='http://www.meinexternesphp.php';
            $neu $inhalt
            Vermutung: Du nimmst komischerweise an, in $neu stünde jetzt der Inhalt der Ressource http://www.meinexternesphp.php
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ja das nehme ich an aber ich vermute jetzt mal dass das falsch ist...

              Die Ausgabe des externen php`s generiert interne wie auch externe Links und ich möchte die internen .php-Links in .html-Links ändern.

              Mit deinem Lösungsvorschlag ändern sich aber auch die externen Links in .html und diese Datei ist natürlich nicht vorhanden.

              Die internen Links führen auf de/test.php und sollen auf de/test.html geändert werden.

              Wenn ich das nach deinem Vorschlag auf

              $inhalt = str_replace("test.php", "test.html", $inhalt);

              ändere bekomme ich zwar keine Fehlermeldung mehr aber die Dateiendungen haben sich dann auch nicht geändert!?

              Kommentar


              • #8
                Original geschrieben von spanani
                Ja das nehme ich an aber ich vermute jetzt mal dass das falsch ist...
                Nicht annehmen, sondern überprüfen.

                Das nennt man auch Debugging.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Ok ok :-)


                  $inhalt='http://www.meinexternesphp.php'.
                  $neu = $inhalt;
                  include($neu);

                  somit enthält $neu die Werte von $inhalt und wird auch richtig ausgegeben, bis auf die Links die ich ja ändern möchte.

                  Kommentar


                  • #10
                    Original geschrieben von spanani
                    $inhalt='http://www.meinexternesphp.php'.
                    $neu = $inhalt;
                    include($neu);

                    somit enthält $neu die Werte von $inhalt
                    Es enthält 'http://www.meinexternesphp.php', genau wie $inhalt - schliesslich hast du genau diesen Wert zugewiesen.
                    und wird auch richtig ausgegeben, bis auf die Links die ich ja ändern möchte.
                    Geändert hast du lediglich den Inhalt von $neu - sofern deine Ersetzerei funktioniert hat, steht also in $neu jetzt nicht mehr 'http://www.meinexternesphp.php', sondern 'http://www.meinexterneshtml.html'.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Wenn ich das str_replace im code lasse kann das schon sein aber das habe ich entfernt da ich ja sonst nur die Fehlermeldung als Ausgabe habe.

                      Ich habe jetzt einfach mal versucht ein bestimmtes Wort zu ersetzen aber da hat sich auch nichts geändert!?

                      $inhalt = str_replace("Tag", "Day", $inhalt);

                      Kommentar


                      • #12
                        Original geschrieben von spanani
                        Ich habe jetzt einfach mal versucht ein bestimmtes Wort zu ersetzen aber da hat sich auch nichts geändert!?

                        $inhalt = str_replace("Tag", "Day", $inhalt);
                        Wir erinnern uns:

                        In $inhalt steht einfach nur 'http://www.meinexternesphp.php' drin.

                        Ich sehe darin kein 'Tag' - kannst du mir zeigen wo es sich zwischen den anderen Buchstaben versteckt hat?
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Die Tags stehen in $inhalt bzw. in dem was $inhalt dann ausgibt denn sonst würde ja bei

                          $inhalt = str_replace(".php", ".html", $inhalt);

                          auch keine Fehlermeldung kommen dass die externe Datei nicht vorhanden ist.

                          Kommentar


                          • #14
                            Ok Denkfehler denn in der Adresse ist ja php vorhanden.

                            Wie kann ich denn dann die Inhalte die die Ausgabe von $inhalt beinhaltet verändern?

                            Kommentar


                            • #15
                              Original geschrieben von spanani
                              Die Tags stehen in $inhalt bzw. in dem was $inhalt dann ausgibt
                              $inhalt gibt überhaupt nichts aus.
                              $inhalt ist eine stinknormale Variable, und die enthält nichts als die Buchstabenfolge 'http://www.meinexternesphp.php' - denn genau die hast du ihr zugewiesen.

                              denn sonst würde ja bei

                              $inhalt = str_replace(".php", ".html", $inhalt);

                              auch keine Fehlermeldung kommen dass die externe Datei nicht vorhanden ist.
                              Dabei kommt auch keine, das darfst du mir gern glauben.

                              Wenn du in der Buchstabenfolge 'http://www.meinexternesphp.php' .php durch .html ersetzen lässt - dann ist es anschliessend 'http://www.meinexternesphp.html'.

                              Wenn du dann versuchst, diese Adresse per Include einzubinden - ja, dann kommt natürlich an der Stelle ein Fehler, wenn es diese nicht gibt.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X