Antje: Anführungszeichen ("") zuverlässig durch » « ersetzen?

Hallo,

kann mir jemand helfen?
Wie kann ich in einem Text per PHP die Anführungszeichen ("") zuverlässig durch diese (»«) ersetzen?

Das Problem sind Links oder Image Links, die dann natürlich auch geändert werden und dann nicht mehr funktionieren.

So wird mittels:
$posting=str_replace(" ""," »",$posting);
$posting=str_replace("" ","« ",$posting);

dieser Text
Sie haben "hier" Anführungszeichen
in
Sie haben »hier« Anführungszeichen
ersetzt, aber auch

a href="....">text</a>
in
a href=»...«>text</a>
gewandelt.

Für jeden Rat bin ich dankbar.
Gruss und Kuss,
Antje

  1. Hi,

    Wie kann ich in einem Text per PHP die Anführungszeichen ("") zuverlässig durch diese (»«) ersetzen?

    durch eine Analyse des Textes. _Nicht_ durch simple Ersetzungen.

    $posting=str_replace(" ""," »",$posting);
    $posting=str_replace("" ","« ",$posting);

    "Ich gehe jetzt", sagte Tim, "und wasche mir die Finger."

    Eines der vier Quotes würde von Dir ersetzt werden.

    a href="....">text</a>

    "Man beachte auch <a href="schachtelungen.html">besondere Schachtelungen</a> im Algorithmus."

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Du hast nochmal schön die bekannte Problematik aufgezeigt, die mir selbst bewusst ist. Aber das hilft mir keinen Deut bei der Lösung.

      1. Moin,

        Du hast nochmal schön die bekannte Problematik aufgezeigt, die mir selbst bewusst ist. Aber das hilft mir keinen Deut bei der Lösung.

        Das geht so mit einfachen regulären Ausdrücken nicht. Es würde begrenzt gehen, wenn du einen Stack benutzt, damit du Schachtelungen erkennen kannst. Wirklich gehen wird das aber nicht, ohne dass du etwas intelligentes (lies: einen Menschen) benutzt.

        --
        Henryk Plötz
        Grüße aus Berlin
        ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
        ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
        1. Huhu Henryk

          Das geht so mit einfachen regulären Ausdrücken nicht.

          Vor einiger Zeit habe ich für genau dieses Problem ein Skript geschrieben.

          Im wesentlichen ist das nur ein preg_replace mit einer callback Funktion die einen zweiten preg_replace macht.
          Also eigentlich ein Zweizeiler (was nicht heisst das ich nicht mehrere Stunden daran rumgefummelt habe ;-)).

          Das Ergebnis schaut dann so aus:

          http://www.maledivas.de/self/quote_it.html

          Nur bei dem 19"-Zoll Monitor klappt es nicht, die Tüttelchen müssen immer paarweise auftreten.

          Viele Grüße

          lulu

          --
          bythewaythewebsuxgoofflineandenjoytheday
          1. Hi,

            Nur bei dem 19"-Zoll Monitor klappt es nicht, die Tüttelchen müssen immer paarweise auftreten.

            Also so?
            Ein 19"-Monitor ist größer als ein 17"-Monitor.

            ;-) SCNR ;-)

            cu,
            Andreas

            --
            Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
            http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  2. Hallo,

    kann mir jemand helfen?

    mal schauen.

    Wie kann ich in einem Text per PHP die Anführungszeichen ("") zuverlässig durch diese (»«) ersetzen?
    Das Problem sind Links oder Image Links, die dann natürlich auch geändert werden und dann nicht mehr funktionieren.

    de.comp.lang.php-FAQ
    8.11. Wie ersetze ich in einem Text, jedoch nicht innerhalb von HTML-Tags?
    http://www.dclp-faq.de/q/q-regexp-ersetzen.html

    Gruß
      Christian