Encoder: allgemeine Frage zur Notation mit Anführungszeichen

Hallo
Bin gerade an folgendem Konstrukt am überlegen.
(PHP)
print "<a onclick='jsFunktion();'>Link</a>";
Mal einfache, mal doppelte Anführungszeichen, das funktioniert ja. Aber wenns dann gleich 3 Schachtelungstiefen sind so wie zum Beispiel hier?
print "<a onclick="jsFunktion("Parameter");" />Link</a>";
Wie behilft man sich bei sowas?
Davon abgesehen dass man etwas wie print <<<END nutzen könnte.

  1. Wie behilft man sich bei sowas?

    Ach komm - jetzt bringst du uns aber zum weinen:
    http://php.net/manual/de/language.types.string.php

    1. So schlimm wollte ich euch ja auch wieder nicht treffen.

      Ich weiß schon dass die die mittleren so maskieren kann
      print "<a onclick="jsFunktion(...);" />Link</a>";

      Aber spätestens bei den inneren gehts nimmer, ich hab folgendes versucht (direkt in HTML, ohne php)
      <a onclick="jsFunktion("Parameter");" />Link</a>
      das ist aber ungültig. Auch mit &amp; wirds nicht angenommen, gibt Syntaxfehler in Javascript. Ich müsste hier doppelte und einfache Anführungszeichen verwenden und da könnts ja sein dass es eine empfohlene Vorgehensweise gibt, wie man sich da möglichst keine Probleme einhandelt.

      1. Mahlzeit Encoder,

        Aber spätestens bei den inneren gehts nimmer, ich hab folgendes versucht (direkt in HTML, ohne php)
        <a onclick="jsFunktion("Parameter");" />Link</a>
        das ist aber ungültig.

        Klar. Was genau sollen denn auch " in HTML bedeuten? Nutze einfach für die Begrenzung von Attributswerten in HTML einerseits und für die Notation von Strings in Javascript andererseits unterschiedliche Anführungszeichen - fertig.

        Wenn das ganze Geraffel jetzt per PHP ausgegeben wird, sollte es eigentlich relativ klar sein, *welche* der Anführungszeichen Du *in PHP* korrekt escapen solltest. Wenn nicht: informiere Dich!

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Hallo,

          Klar. Was genau sollen denn auch " in HTML bedeuten? Nutze einfach für die Begrenzung von Attributswerten in HTML einerseits und für die Notation von Strings in Javascript andererseits unterschiedliche Anführungszeichen - fertig.

          hmm, der Parameter, der der Javascriptfunktion übergeben werden muss, ist der Nickname eines Teilnehmers hier:

          Timo "God's Boss" Reitz

          Wenn das ganze Geraffel jetzt per PHP ausgegeben wird, sollte es eigentlich relativ klar sein, *welche* der Anführungszeichen Du *in PHP* korrekt escapen solltest. Wenn nicht: informiere Dich!

          das kann ich nur unterstreichen.

          Freundliche Grüße

          Vinzenz

  2. Mahlzeit Encoder,

    print "<a onclick="jsFunktion("Parameter");" />Link</a>";
    Wie behilft man sich bei sowas?

    Indem man sich zum Thema "Kontextwechsel" informiert ...

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|