Stephan: Parse error bei Code

Hallo,

kann mir jemand sagen, wo der Fehler liegt? Parse error in line 134:

132:   $inhalt = nl2br($row['eintrag']);
133:
134:$inhalt = str_replace(":(", "<img src="aerger.gif">", $inhalt);
135:$inhalt = str_replace(":-(", "<img src="aerger.gif">", $inhalt);
136:$inhalt = str_replace("*ahnung*", "<img src="ahnung.gif">", $inhalt);

usw.

Wo liegt der Fehler?

Danke schon jetzt

Stephan

  1. Hallo,

    134:$inhalt = str_replace(":(", "<img src="aerger.gif">", $inhalt);
    Wo liegt der Fehler?

    Bei den Anfuehrungszeichen.
    Tip: " oder ' verwenden!

    $inhalt = str_replace(":(", "<img src="aerger.gif">", $inhalt);
    $inhalt = str_replace(":(", "<img src='aerger.gif'>", $inhalt);

    Gruesse,

    Thomas

    1. Jetzt sieht meine Zeile so aus:

      $inhalt = str_replace(":(", "<img src='aerger.gif'>", $inhalt);

      und er sagt:

      Warning: Unexpected character in input: '' (ASCII=92) state=1 in /var/www/web199/html/gb/guestbook.php on line 134

      Danke schon im Vorraus

      Stephan

      1. Hallo!

        Du musst nur die " bei aerger.gif durch " ersetzen, die anderen müssen bleiben.

        Gruß, Achim

        1. Klasse, Danke!

          Stephan

      2. hi,

        Jetzt sieht meine Zeile so aus:
        $inhalt = str_replace(":(", "<img src='aerger.gif'>", $inhalt);

        nur die anführungszeichen _innerhalb_ eines strings musst du maskieren, nicht die äusseren, die den string _begrenzen_.

        gruss,
        wahsaga

        1. Aha, jetzt gehts!

      3. Moin!

        Alt:

        $inhalt = str_replace(":(", "<img src="aerger.gif">", $inhalt);
                              ^--^  ^---------^          ^-^
        Das unterstrichene sind die einzelnen Strings, die du mit "-Zeichen eingeklammert hast.

        Neu:

        $inhalt = str_replace(":(", "<img src='aerger.gif'>", $inhalt);

        " ist kein richtiger Befehl, der klammert auch keine Strings ein.

        Thomas sagte, _entweder_ innerhalb von Strings " schreiben, _oder_ dort ' schreiben. Oder die Stringeinrahmung statt mit " mit ' machen (dann kann man innerhalb von Strings " benutzen, aber muß ' benutzen.

        Richtig:
        $inhalt = str_replace(":(", "<img src='aerger.gif'>", $inhalt);
                              ^--^  ^----------------------^
        oder:
        $inhalt = str_replace(":(", "<img src="aerger.gif">", $inhalt);
                              ^--^  ^------------------------^
        oder:
        $inhalt = str_replace(':(', '<img src="aerger.gif">', $inhalt);
                              ^--^  ^----------------------^
        oder:
        $inhalt = str_replace(':(', '<img src='aerger.gif'>', $inhalt);
                              ^--^  ^------------------------^
        Mischen bei _verschiedenen_ Strings geht natürlich auch:
        $inhalt = str_replace(":(", '<img src="aerger.gif">', $inhalt);
                              ^--^  ^----------------------^

        - Sven Rautenberg

        --
        "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
        (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
        1. Hi,

          $inhalt = str_replace(':(', '<img src='aerger.gif'>', $inhalt);

          ^-----------^
          Das dürfte aber nicht funktionieren. Na ja, schon, aber im Quelltext steht dann wahrscheinlich <img src='aerger.gif'>, und ich denke das ist nicht erwünscht :-)

          Ich halte die '<img src="aerger.gif">' methode für die sauberste. Jedenfalls wenn hier noch die fehlenden Angaben mit dazu kommen :-)

          Gruß,
          small-step

          1. hi,

            $inhalt = str_replace(':(', '<img src='aerger.gif'>', $inhalt);
                                                     ^-----------^
            Das dürfte aber nicht funktionieren. Na ja, schon, aber im Quelltext steht dann wahrscheinlich <img src='aerger.gif'>, und ich denke das ist nicht erwünscht :-)

            nein, als ausgabe kommt natürlich <img src='aerger.gif'> heraus - die \ vor den ' werden bei der ausgabe eleminiert, da sie ja nur dazu dienen, _php_ den unterschied zwischen "ein anführungszeichen, welches den string begrenzt" und "ein anführungszeichen, welches als solches gemeint ist" klar zu machen.

            gruss,
            wahsaga