PHP Neuling: Echo Funktion

Hallo zusammen

Ich wollte mit einer echo Funktion in PHP ein paar Zeilen mit HTML-Formatierungen schreiben, doch hat das nicht so geklappt wie ich wollte:

echo "
<div style="style="text-align:center;">
<a onMouseOver="y=6">Hallo<a></div>";

Die Ausgabe im Browser hat dann nur die Fehlermeldung gebracht, dass ein ";" am Ende der echozeile wrwartet wird. Anscheinend wurden die " und ; in dem style-Element von der echo Funktion in irgendeiner Weise interpretiert.

Waere toll wenn mir jemad weiterhekfen koennte.

  1. Entweder:

    echo "
    <div style="text-align:center;">
    <a onMouseOver="y=6">Hallo<a></div>";

    (" escaped) oder

    echo '
    <div style="text-align:center;">
    <a onMouseOver="y=6">Hallo<a></div>';

  2. Hallo!

    echo "
    <div style="style="text-align:center;">
    <a onMouseOver="y=6">Hallo<a></div>";

    style="style="text-align:center;" <- Das ist kein gültiges CSS!

    <a onMouseOver="y=6"> <- was soll das sein?

    Zu deinem Problem: Escape die Anführungszeichen.
    Zu deinem eigentlichen Problem: Lerne HTML, CSS (und JavaScript) bevor du dich an PHP machst.

    ciao, ww

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

      Zu deinem eigentlichen Problem: Lerne HTML, CSS (und JavaScript) bevor du dich an PHP machst.

      Was meinst Du, wozu PHP Neuling hier ist?

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau

      1. Hallo!

        Zu deinem eigentlichen Problem: Lerne HTML, CSS (und JavaScript) bevor du dich an PHP machst.

        Was meinst Du, wozu PHP Neuling hier ist?

        Öhm...um PHP zu lernen?

        Irgendwie verstehe ich den Sinn deiner Frage nicht so ganz. Könntest du es mir vielleicht erklären?

        ciao, ww

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

          Irgendwie verstehe ich den Sinn deiner Frage nicht so ganz. Könntest du es mir vielleicht erklären?

          Dies ist keine PHP Seite, sondern eine SELFHTML, wie der Name schon sagt, ich denke das wollte der Kollege dir eben sagen ;-))

          ciao, ww

          1. Hello,

            Dies ist keine PHP Seite, sondern eine SELFHTML, wie der Name schon sagt, ich denke das wollte der Kollege dir eben sagen ;-))

            So oder so ähnlich: ja!

            Ein bisschen Aufmerksamkeit und Achtung gegenüber den anderen Postern sollte man schon mitbringen. Auch wenn es heutzutage chique ist, Andere erstmal runterzumachen, so ist das doch nicht der Sinn dieses Forums.

            PHP Neuling sollte also durch die "Wissenden" eher durch passende Fragestellung und Hilfestellung bei der Problembeschreibung geholfen werden. Er wird sich dann bestimmt mal revanchieren.
            Schließlich trifft man sich (mindestens) immer zweimal im Leben :-)

            Harzliche Grüße vom Berg
            http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau

            1. Hallo!

              Ein bisschen Aufmerksamkeit und Achtung gegenüber den anderen Postern sollte man schon mitbringen.

              Das versuche ich auch.

              Auch wenn es heutzutage chique ist, Andere erstmal runterzumachen, so ist das doch nicht der Sinn dieses Forums.

              Mein Ziel war es nicht, ihn runterzumachen, sondern ihn darauf hinzuweisen, dass er sich erst einmal mit den Grundlagen beschäftigen soll, bevor er sich an komplexere Dinge wagt [1]. Könntest du mir vielleicht sagen, was du als störend empfunden hast?

              Hier ist mein Posting:

              style="style="text-align:center;" <- Das ist kein gültiges CSS!

              Hiermit habe ich gesagt, dass es einfach nicht richtig ist, was er mit PHP ausgeben will.

              <a onMouseOver="y=6"> <- was soll das sein?

              IMHO ist es eine wirklich berechtigte Frage. Wenn er weiß, was er damit tut, dann kann er es doch auch sagen. Aber weil ich das bezweifle, wollte ich ihm zeigen, dass er warscheinlich etwas falsch macht.

              Zu deinem Problem: Escape die Anführungszeichen.

              Das löst sein Problem.

              Zu deinem eigentlichen Problem: Lerne HTML, CSS (und JavaScript) bevor du dich an PHP machst.

              [1]

              Also: Mein Posting war sicher nicht übertrieben freundlich, aber auch im Nachhinein frage ich mich, was daran so schlimm ist. Wenn es den OP in irgendeiner Weise runter macht, dann entschuldige ich mich dafür.

              ciao, ww

              --

              Ein japanisch-deutsches Gedicht
              sh:(  fo:|  ch:~  rl:(  br:>  n4:~  ie:%  mo:)  va:)  de:]  zu:)  fl:(  ss:|  ls:~  js:)
              1. Hello,

                Mein Ziel war es nicht, ihn runterzumachen, sondern ihn darauf hinzuweisen, dass er sich erst einmal mit den Grundlagen beschäftigen soll, bevor er sich an komplexere Dinge wagt [1]. Könntest du mir vielleicht sagen, was du als störend empfunden hast?

                Das kann man noch sehr viel höflicher tun und dabei möglichst auch Hilfen geben, wie er das tun kann. Verweise auf SelfHTML-Online-Manual sind hier sehr beliebt und motivieren den Fragestellenden, sich auch mit der Materie zu beschäftigen. Außerdem sollte man den Effekt für sich selber nicht unterschätzen. Um sicherzustellen, dass man auf die richtige Seite verweist, muss man selber nochmal kurz lesen. Das trainiert ungeheuer...

                style="style="text-align:center;" <- Das ist kein gültiges CSS!

                Und was wäre gültiges?

                Hiermit habe ich gesagt, dass es einfach nicht richtig ist, was er mit PHP ausgeben will.

                <a onMouseOver="y=6"> <- was soll das sein?

                Was vermutest Du als Fachmann denn?
                Wie müsste er/sie es denn besser machen?

                IMHO ist es eine wirklich berechtigte Frage. Wenn er weiß, was er damit tut, dann kann er es doch auch sagen. Aber weil ich das bezweifle, wollte ich ihm zeigen, dass er warscheinlich etwas falsch macht.

                Das er/sie etwas falsch gemacht hat, war doch schon von vornherein klar. Sonst wäre doch hier die Frage nicht gepostet worden!

                Zu deinem Problem: Escape die Anführungszeichen.

                Das löst sein Problem.

                Nein, das wirft neue auf, da Du nicht erklärt hast, was "escapen" bedeutet. Bei jemanden, der sich selbst als Neuling bezeichnet, kann man nicht von einem vollständigen Wortschatz an Fachbegriffen ausgehen, Sonst wäre er/sie ja kein Neuling mehr, oder?

                Ein Hinweis auf die Seite im PHP-Handbuch hätte da schon sehr weitergeholfen:
                http://www.php.net/manual/de/language.types.string.php
                Die findet man aber sehr schwer und es macht Mühe, sie neu zu suchen. Aber genau das meinte ich mit "Aufmerksamkeit" - sich diese Mühe zu machen.

                Zu deinem eigentlichen Problem: Lerne HTML, CSS (und JavaScript) bevor du dich an PHP machst.

                Sicherlich wahr, aber hast Du im Leben immer alles "in der richtigen Reihenfolge" gemacht?
                HTML ohne PHP ist doch langweilig, wenn es blinken und Flackern soll, oder war das jetzt Java? *g*

                Also: Mein Posting war sicher nicht übertrieben freundlich, aber auch im Nachhinein frage ich mich, was daran so schlimm ist. Wenn es den OP in irgendeiner Weise runter macht, dann entschuldige ich mich dafür.

                Du musst deshalb bestimmt auch nicht in Sack und Asche gehen. Du hast ja noch Zeit, dich in Zukunft etwas aufmerksamer um "PHP Neuling" zu kümmern. Vielleicht kommt er/sie trotzdem nochmal wieder und hinterlässt gelegentlich auch mal ein paar persönliche Informationen (Vorname, Alter), was natürlich keine Pflicht ist. Es macht das Posten nur etwas persönlicher :-)

                Harzliche Grüße vom Berg
                http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau

                1. Hallo!

                  Das kann man noch sehr viel höflicher tun und dabei möglichst auch Hilfen geben, wie er das tun kann.

                  Was war daran besonders unhöflich? Ich meine wahsaga war da schon unfreundlicher ;-)

                  Verweise auf SelfHTML-Online-Manual sind hier sehr beliebt und motivieren den Fragestellenden, sich auch mit der Materie zu beschäftigen.

                  Ich sehe es nicht als meine Aufgabe an, den Fragesteller zu motivieren. Ich sehe es als meine Pflicht, dem Fragesteller eine Möglichkeit zu geben, sein Problem zu lösen (siehe weiter unten). Im übrigen bringen Verweise auf SELFHTML nicht besonders viel, was das Thema PHP angeht.

                  Außerdem sollte man den Effekt für sich selber nicht unterschätzen. Um sicherzustellen, dass man auf die richtige Seite verweist, muss man selber nochmal kurz lesen. Das trainiert ungeheuer...

                  Ist das ernst gemeint? :-)

                  style="style="text-align:center;" <- Das ist kein gültiges CSS!

                  Und was wäre gültiges?

                  Wenn jemand einen solchen Code produziert, dann zeigt es, dass er scheinbar überhaupt nicht weiß, was er da macht. Ich bin und war mir da auch nicht so sicher. Scheinbar kennt er die richtige CSS-Eigenschaft und weiß, wie er es notieren muss. Vielleicht war es ein Flüchtigkeitsfehler oder was weiß ich was. Aber ohne zu wissen, warum er es falsch macht, kann ich nicht mehr machen, als ihm zu sagen, dass es falsch ist.

                  Hiermit habe ich gesagt, dass es einfach nicht richtig ist, was er mit PHP ausgeben will.

                  <a onMouseOver="y=6"> <- was soll das sein?

                  Was vermutest Du als Fachmann denn?
                  Wie müsste er/sie es denn besser machen?

                  Was er besser machen soll? Soll ich jetzt einfach mal so raten, was er erreichen will? Wie soll ich ihm als "Fachmann" raten etwas zu tun, wenn ich nicht weiß, was er will?

                  IMHO ist es eine wirklich berechtigte Frage. Wenn er weiß, was er damit tut, dann kann er es doch auch sagen. Aber weil ich das bezweifle, wollte ich ihm zeigen, dass er warscheinlich etwas falsch macht.

                  Das er/sie etwas falsch gemacht hat, war doch schon von vornherein klar. Sonst wäre doch hier die Frage nicht gepostet worden!

                  Ja, allerdings bezog sich das auf das nicht-escapen von Anführungszeichen. Und nicht auf fehlerhaftes CSS oder JavaScript.

                  Zu deinem Problem: Escape die Anführungszeichen.

                  Das löst sein Problem.

                  Nein, das wirft neue auf, da Du nicht erklärt hast, was "escapen" bedeutet. Bei jemanden, der sich selbst als Neuling bezeichnet, kann man nicht von einem vollständigen Wortschatz an Fachbegriffen ausgehen, Sonst wäre er/sie ja kein Neuling mehr, oder?

                  Eine einfache Suchanfrage bei Google mit den Stichworten php escapen führt mich zur richtigen Seite des Tutorials von QuakeNet.

                  Ein Hinweis auf die Seite im PHP-Handbuch hätte da schon sehr weitergeholfen:
                  http://www.php.net/manual/de/language.types.string.php
                  Die findet man aber sehr schwer und es macht Mühe, sie neu zu suchen. Aber genau das meinte ich mit "Aufmerksamkeit" - sich diese Mühe zu machen.

                  Wie gesagt: Eine Suchanfrage bei Google hätte ebenfalls zum Ziel geführt. Und mit dem PHP-Handbuch kenne ich mich nicht aus. Eine Suche wäre für mich dort genau so lange gewesen, wie für ihn. Und da Google auch die Lösung parat hatte, warum sollte ich dann auch noch im Handbuch danach suchen.

                  Zu deinem eigentlichen Problem: Lerne HTML, CSS (und JavaScript) bevor du dich an PHP machst.

                  Sicherlich wahr, aber hast Du im Leben immer alles "in der richtigen Reihenfolge" gemacht?

                  Nein. Aber ich wäre zum Teil froh gewesen, wenn mich jemand darauf hinweist, dass ich es falsch mache. Und ich wollte verhindern, dass der OP auch diesen Fehler macht.

                  Ich finde nicht, dass es von einem Fragesteller zu viel verlangt ist, bei Google nach dem Stichwort "escapen" zu suchen, oder? Es heißt hier *SELF*Forum und es ist auch durchaus üblich hier, dem OP nicht alles vorzukauen. Wenn jemand Lust dazu hat, dann kann er das machen und bekommt von mir ein "fachlich hilfreich". Aber wenn ich das nicht will, dann sage ich ihm nach was er suchen muss und ihm ist im Endeffekt mindestens genauso geholfen.

                  ciao, ww

                  --

                  Ein japanisch-deutsches Gedicht
                  sh:(  fo:|  ch:~  rl:(  br:>  n4:~  ie:%  mo:)  va:)  de:]  zu:)  fl:(  ss:|  ls:~  js:)
  3. Hallo zusammen

    Ich wollte mit einer echo Funktion in PHP ein paar Zeilen mit HTML-Formatierungen schreiben, doch hat das nicht so geklappt wie ich wollte:

    echo "
    <div style="style="text-align:center;">
    <a onMouseOver="y=6">Hallo<a></div>";

    Das Problem ist, dass der String nur von " bis zum nächsten " geht und das ist bei dir bei style="

    Nun hast du zwei Möglichkeiten:
    a) Du packst den String in einfache Hochkommas ' statt in doppelte, dann hat sich das ganze Problem eh schon erledigt (doppelte brauchst du eigentlich nur, wenn du in dem String eine PHP Variable verwendest.)
    Also: echo '<div style="".....';

    b) Du "entwertest" die doppelten Anführungszeichen mit einem Backslash , also echo "<div style=".........";

    Ich verwende eigentlich immer Variante a), doppelte Hochkomams braucht man wie gesagt sowieso fast nie...

    Viel Spaß weiterhin mit PHP,

    Michael

  4. hi,

    echo "
    <div style="style="text-align:center;">
    <a onMouseOver="y=6">Hallo<a></div>";

    Die Ausgabe im Browser hat dann nur die Fehlermeldung gebracht, dass ein ";" am Ende der echozeile wrwartet wird. Anscheinend wurden die " und ; in dem style-Element von der echo Funktion in irgendeiner Weise interpretiert.

    RTFM: http://www.php.net/manual/de/language.types.string.php

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }