Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] str_replace funktioniert nach neuer Xampp Installation nicht mehr!

Einklappen

Neue Werbung 2019

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

  • [Erledigt] str_replace funktioniert nach neuer Xampp Installation nicht mehr!

    Hallo an alle

    Ich habe schon seit längerem immer eine gleich Art der Programmierung gemacht. Ich habe vor paar Tage Xampp neu installiert weil der PC formatiert werden musste. Jetzt geht die Funktion str_replace nicht mehr. Vorher ging alles ohne Probleme und die Projekte die ich hatte im htdocs Ordner sind auch die gleichen geblieben.

    Meine Frage:
    Kann es an einer Einstellung in der php.ini liegen oder wo könnte das Problem sein?

    DANKE schon im Voraus für Eure Bemühungen.


  • #2
    Hallo stallone,
    "funktoiniert nicht" ist keine Beschreibung mit der irgendjemand irgendwas anfangen kann.

    Was funktioniert nicht? Was erwartest du, was passiert? Wie sieht der Code aus?
    Hast du getestet ob der "Fehler" nur bei str_replace() auftritt?

    Wetten wir um 100€ dass es nicht an str_replace liegt? Mein Tipp: es ist ein register_globals-Problem...
    Create your own quiz show.

    Kommentar


    • #3
      Hallo

      Besten Dank für dein schnelles eingreiffen.
      Wie erwähnt ist es eine Funktion die bis vor paar Tage vor der Formatierung funktioniert hat. str_replace ersetzt einfach Zeichen in einem Text.

      $1=str_replace("'","\'",$1);Es kommt keine Fehlermeldung. Gar nichts passiert und die Seite geht weiter aber ohne diesen Befehl ausgeführt zu haben.

      Ich glaube das an der neuen Xampp Version eine Einstellung notwendig ist.
      Du sagtest etwas von Globals. Was soll ich kontrollieren?

      Danke im Voraus für deine Bemühungen.

      Kommentar


      • #4
        Woher kommt die Variable $1?
        Das erste Zeichen des Variablennamens muss immer ein Buchstabe oder ein unterstrich _ sein.
        Im Übrigen sieht mir das stark nach eine Nachprogrammierung der Funktion addslashes() aus.
        Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

        Kommentar


        • #5
          Hallo Manko

          Ich habe die Variable $1 nur als Beispiel genommen.

          Ich könnte dir auch folgendes hinschreiben:
          $text=str_replace("Braun","",$text);

          Fakt ist es wie am Anfang beschrieben, dass die Funktion str_replace weder eine Fehlermeldung ausgibt und meinerseits auch nichts geändert wurde aussert Xampp neu installiert.

          Vielleicht hast du ja trotzdem eine Lösung oder dies wie angesprochen mit den Globals.

          Danke dir.

          Kommentar


          • #6
            Hallo Stallone,

            bitte verwende mal ein vollständiges Beispielskript.

            Was gibt dir z.B: das Beispiel zu str_replace aus dem Manual aus:

            PHP-Code:
            <?php
            // Liefert: <body text='schwarz'>
            $bodytag str_replace("%body%""schwarz""<body text='%body%'>");

            // Liefert: Hll PHP-Wlt
            $vokale = array("a""e""i""o""u""A""E""I""O""U");
            $onlyconsonants str_replace($vokale"""Hallo PHP-Welt");


            // Liefert: Sie sollten taeglich Pizza, Bier und Eiscreme essen.
            $phrase "Sie sollten taeglich Fruechte, Gemuese und Ballaststoffe essen.";
            $gesund = array("Fruechte""Gemuese""Ballaststoffe");
            $lecker = array("Pizza""Bier""Eiscreme");

            $newphrase str_replace($gesund$lecker$phrase);

            // Die Verwendung des count-Parameters ist ab PHP 5.0.0 möglich
            $str str_replace("ll""""good golly miss molly!"$count);
            echo 
            $count// 2

            // Reihenfolge von Ersetzungen
            $str     "Zeile 1\nZeile 2\rZeile 3\r\nZeile 4\n";
            $order   = array("\r\n""\n""\r");
            $replace '<br />';
            // Verarbeitet \r\n's zuerst, so dass sie nicht doppelt konvertiert werden
            $newstr str_replace($order$replace$str);

            // Ausgabe: apearpearle pear
            $letters = array('a''p');
            $fruit   = array('apple''pear');
            $text    'a p';
            $output  str_replace($letters$fruit$text);
            echo 
            $output;
            ?>
            (die echo Ausgaben fehlen in dem Beispiel meist, einfach hinzufügen).

            Oder ein einfaches:
            PHP-Code:
            <?php
            $text 
            "Hallo du";
            echo 
            str_replace("du""sie"$text);


            Nur um mal sicherzustellen, dass der Fehler nirgendwo anders liegt...
            Create your own quiz show.

            Kommentar


            • #7
              hallo

              habe folgendes festgestellt:

              das funktioniert:
              $tag = str_replae("dada", "", $tag);

              das funktioniert nicht:
              $tag = str_replace("<FONT style=\"FONT-SIZE: 11px; FONT-FAMILY: verdana\">", "", $tag);
              Beim ersten Beispiel nimmt er mir "dada" weg und ersetzt es mit "".
              Beim zweitten Beispiel macht er mir nichts.

              Warum das wohl?

              Kommentar


              • #8
                Vorher war php4 installiert und es funktionierte.

                Jetzt ist php5 installiert und nur das erste Beispiel geht.

                Kommentar


                • #9
                  Meines Wissens gab es keine signifikante Aenderung von str_replace() in PHP 5 und str_replace() funktioniert bei mir auch versions-unabhaengig genau wie erwartet.

                  Haeufig klappen Skripte nach der Umstellung von PHP 4 auf PHP 5 nicht mehr, weil die Einstellung des Flag "register_globals" auf "off" gestellt ist. Wenn Variablen unerwartet keine Inhalte mehr haben ist vermutlich genau das der Fall. Mach dich dazu bitte in alten Beitraegen oder der Google/Forensuche schlau.

                  Lass dir vorher aber mal mit var_dump() die Variable $tag ausgeben, der zu ersetzende String kommt darin nicht vor. Ueberpruef es notfalls Zeichen fuer Zeichen und lass dir alle beteiligten Variablen mit var_dump() ausgeben.
                  "Mein Name ist Lohse, ich kaufe hier ein."

                  Kommentar


                  • #10
                    register_globals ist auf On gestellt.
                    Die Variablen funktionieren, da ich fast nur mit Variablen arbeite.
                    Oben Abschnitt 7, habe ich geschrieben das str_replace beim ersten Beispiel funktioniert es ja auch.

                    Kommentar


                    • #11
                      Zitat von stallone Beitrag anzeigen
                      register_globals ist auf On gestellt.
                      Die Variablen funktionieren, da ich fast nur mit Variablen arbeite.
                      Oben Abschnitt 7, habe ich geschrieben das str_replace beim ersten Beispiel funktioniert es ja auch.
                      Wie Zergling schon gesagt hat: lass dir mit var_dump() davor nochmal den Inhalt von $tag ausgeben.

                      Und poste hier mal den kompletten Code des Beispiels welches bei dir nicht funktioniert. Wahrscheinlich kommt wirklich einfach der zu ersetzende Text so nicht in $tag vor.

                      Woher kommt dessen Inhalt? Über GET/POST? Wie ist magic_quotes_gpc eingestellt? (Das ist jetzt wieder nur geraten )
                      Create your own quiz show.

                      Kommentar


                      • #12
                        Hallo

                        Ich habe Heute Morgen nochmals extra getestet.

                        Also es liegt tatsächlich an der php Version.
                        php4 gehts
                        und
                        php5 gehts nicht.

                        Aber warum ist die Frage?

                        Kommentar


                        • #13
                          Ich schliess den Thread wenn du keine Hilfe annimmst. Nochmal verweise ich nicht auf Debuggen mit var_dump().
                          "Mein Name ist Lohse, ich kaufe hier ein."

                          Kommentar


                          • #14
                            sorry aber ich weis nicht genau was das heisst! var_dump()

                            Kommentar


                            • #15
                              Dann frag doch gleich nach und tu nich so als haettest du es nicht gehoert.

                              var_dump() ist eine PHP-Funktion:
                              PHP: var_dump - Manual

                              PHP-Code:
                              <?php
                              var_dump
                              ($var1$var2, ..);
                              ?>
                              Du kannst der Funktion beliebig viele Variablen uebergeben, als Antwort bekommst du sie inklusive Typbezeichnung (string/bool/int/..) ausgegeben. So siehst du was in den Variablen aktuell drinsteht. Genau das sollst du mit den Werten machen, die du str_replace() uebergibst. Vergleich dann Zeichenweise, ob der zu ersetzende Wert wirklich dort vorkommt.

                              Wenn dir das nicht weiterhilft, poste die Ausgabe von var_dump() hier ins Forum.
                              "Mein Name ist Lohse, ich kaufe hier ein."

                              Kommentar

                              Lädt...
                              X