Jürgen: ereg_replace

Hallo,

kann mir jemand sagen wie ich " und ' aus einem Text durch " bzw. ' ersetzen kann? Habs mit:

$text = preg_replace("'","'",$text);

Da kommt aber ne Fehlermeldung. stripslashes ist für mich hier nich sinnvoll, da andere \ bleiben sollen, nur die mit der kombination ' und " sollen raus.

Gruß
Jürgen

  1. Ich würde preg_replace verwenden, da dieses weit weniger Ressourcen frist. Dein Ausdruck wäre '/\(['"]{1})/' oder in der Richtung.
    Grüße.

    1. Ja, sorry, meinte preg_replace, ist nur im Titel falsch.

      Fehlt deinem Vorschlag nicht noch was? Das ist doch nur ein Teil, oder? Sorry, hab von den regular expressions keine Ahnung. Hab versucht was hinzubasteln, aber verstehe das mit den slahes und Anführungszeichen nicht.

      Würde mich über Hilfe sehr freuen!

      1. Sorry, '/\\(['"]{1})/' müsste gehen. Du setzt dann einfach:

        preg_replace('/\(['"]{1})/','$1',$str);

        oder wie die Funktion genau aufgebaut ist, da war irgendwas mit Limitern....

        Das besagt: Zuerst ein doppelt maskierter Backslash, einmal maskiert für PHP, dann für die RegEx, schließlich ein Speicherraum in Klammern, der ein Zeichen ' oder " enthalten darf. Dieser wird durch den Speicherraum $1 ersetzt.

        1. Danke für deine Hilfe (deine Erklärung verstehe ich soweit), aber so ganz funktioniert es noch nicht. Folgende Fehlermeldung kommt:

          Warning: preg_replace() [function.preg-replace]: Compilation failed: unmatched parentheses at offset 9

          $ers = '"';
          $text = preg_replace('/\(['"]{1})/',$ers,$text);

          Stimmt wohl was mit den Klammer nicht, aber zuviel oder zu wenig an Klammern ist meiner Meinung nach nicht der Fall. Hast du eine Idee?

          Gruß
          Jürgen

          1. Ein kurzer Versuch:

            $ers = "\'";
            var_dump($ers);
            $value = preg_replace('/\\(['"]{1})/','$1',$ers);
            var_dump($value);

            führt mich zu diesem Ergebnis. Das Problem waren die doppelt zu maskierenden Backslashes am Anfang.

  2. gudn tach!

    kann mir jemand sagen wie ich " und ' aus einem Text durch " bzw. ' ersetzen kann? Habs mit:

    $text = preg_replace("'","'",$text); [...]

    $text = preg_replace('\\\\[\'"]','$1',$text);
    oder
      $text = preg_replace('\\\\(?=[\'"])','',$text);
    oder
      $text = [link:http://de.php.net/str_replace@title=str_replace](array('\\\'', '\\"'), array('\'', '"'), $text);

    die dritte moeglichkeit sollte die schnellste sein.

    prost
    seth

  3. echo $begrüßung;

    kann mir jemand sagen wie ich " und ' aus einem Text durch " bzw. ' ersetzen kann? Habs mit:

    Dafür braucht man die Reguläre-Ausdrücke-Kanone nicht, da reicht das str_replace-Blasrohr.

    $text = preg_replace("'","'",$text);
    Da kommt aber ne Fehlermeldung.

    Das ist auch keine RegExp-Syntax. Nimm str_replace() statt preg_replace(), dann passt der Rest.

    echo "$verabschiedung $name";