erkennen ob " vor einem wort oder danach steht

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

  • erkennen ob " vor einem wort oder danach steht

    Liebe Community,

    ich habe folgende Frage: ist es möglich mittels PHP den Inhalt einer Variable ($text s.u.) dahingehend zu überprüfen ob " (& quot vor oder nach einem Wort steht? Ich möchte am beispiel "test" jedes der quot durch ein anderes Zeichen ersetzen. Das klappt aber bisher nur wenn sich davor und danach ein Leerzeichen befindet

    PHP-Code:
    $text ereg_replace("" ","xxx",$text); 
    oder eben

    PHP-Code:
    $text ereg_replace(" "","yyy",$text); 
    kann mir hier jemand weiterhelfen?

    Vielen Dank!

    tm

  • #2
    z.B.
    PHP-Code:
    $text str_replace('"',array('yyy','xxx'),htmlspecialchars_decode($text)); 
    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      hmm. das klappt irgendwie nicht. wenn ich den inhalt ganz normal als text ausgebe bleiben die "test" stehen, wenn ich das ganze als png ausgebe (was später so sein soll) steht dran: "arraytestarray"

      danke

      tm

      Kommentar


      • #4
        Dann mach mal array('yyy','xxx') weg und schreibe nur 'yyy'
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          hmmm also bei

          PHP-Code:
           $text str_replace('"','yyy'),htmlspecialchars_decode($text)); 
          kommt ein

          Parse error: syntax error, unexpected ',' in view2.php on line 88

          ... ich seh den Fehler nicht? Davon abgesehen - würde diese Zeile mein Problem lösen? die bezieht sich ja nur auf das " allgemein, oder?

          danke sehr!

          tm
          Zuletzt geändert von Typomaniac; 19.07.2007, 22:55.

          Kommentar


          • #6
            Du hast auch die schliessende Klammer von array() stehen lassen
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              peinlich aber nicht die ursache wie mir scheint...immer noch derselbe fehler...

              Kommentar


              • #8
                Er hat Recht. Das Artefakt ersetzt einfach alle Anführungszeichen durch andere ohne deren Position zu berücksichtigen.

                Ich würde zu preg_replace() greifen, erstmal schauen, was sich mit "word boundaries" erschlagen läßt und falls das nicht alle Fälle abdeckt, dann den Rest zu Fuß, sprich mit Zeichenklasse.

                Könnte ungefähr so aussehen ...
                davor: $text = preg_replace("/\"(\b)/", "/xxx$1/", $text);
                danach: $text = preg_replace("/(\b)\"/", "/$1yyy/", $text);

                Falls du dich mit regulären Ausdrücken nicht auskennst, lies http://www.php.net/manual/en/ref.pcre.php und teste auf http://regexp-evaluator.de/evaluator/.
                Zuletzt geändert von onemorenerd; 19.07.2007, 23:06.

                Kommentar


                • #9
                  ich kenne mich damit leider nicht so wirklich aus – aber ich werde den link konsultieren und deinen code ausprobieren..vielen dank!

                  andré

                  Kommentar

                  Lädt...
                  X