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

  • Chriz
    antwortet
    Ich schliess den Thread wenn du keine Hilfe annimmst. Nochmal verweise ich nicht auf Debuggen mit var_dump().

    Einen Kommentar schreiben:


  • stallone
    antwortet
    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?

    Einen Kommentar schreiben:


  • agrajag
    antwortet
    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 )

    Einen Kommentar schreiben:


  • stallone
    antwortet
    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.

    Einen Kommentar schreiben:


  • Chriz
    antwortet
    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.

    Einen Kommentar schreiben:


  • stallone
    antwortet
    Vorher war php4 installiert und es funktionierte.

    Jetzt ist php5 installiert und nur das erste Beispiel geht.

    Einen Kommentar schreiben:


  • stallone
    antwortet
    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?

    Einen Kommentar schreiben:


  • agrajag
    antwortet
    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...

    Einen Kommentar schreiben:


  • stallone
    antwortet
    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.

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    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.

    Einen Kommentar schreiben:


  • stallone
    antwortet
    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.

    Einen Kommentar schreiben:


  • agrajag
    antwortet
    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...

    Einen Kommentar schreiben:

Lädt...
X