typisches echo-Problem (Anführungszeichen)

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

  • typisches echo-Problem (Anführungszeichen)

    Hallo,
    habe ein kleines Problemchen:

    PHP-Code:
    echo '<tr><td align="right"><a href="edit.php?cmd=edit&Nr='.$row['Nr'].'" onClick="MyWindow=window.open("edit.php","MyWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=675,height=400"); return false;"><img src="images/stift.png" border="0" /></a></td></tr>'
    Also in diesem Bereich gehören normal einfache Anführungszeichen, aber da ich sie als echo-Klammern nutze, geht das nicht. Abhilfe?
    PHP-Code:
    ("edit.php","MyWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=675,height=400"
    Danke im Voraus.
    sAks

  • #2
    1. Code umbrechen
    2. Entweder einen anderen Delimiter nehmen (einfache oder doppelte Anführungszeichen) oder escapen (idR mit einem Backslash).
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Danke für die schnelle Antwort.

      Gibt es eine Regel wie man Delimiter innen/aussen in echos benutzt?

      zB. echo ' .... ".... ´...´....".....';

      Würde so etwas gehen?

      Kommentar


      • #4
        Wozu das ganze Zeug mit echo ausgeben? Wirds dadurch schöner?

        PHP-Code:
        <tr>
            <td align="right">
                <a href="edit.php?cmd=edit&Nr=<?php echo $row['Nr']; ?>" onclick="MyWindow=window.open("edit.php","MyWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=675,height=400"); return false;">
                    <img src="images/stift.png" border="0" />
                </a>
            </td>
        </tr>

        Kommentar


        • #5
          @h3ll
          Man, darauf bin ich noch gar nicht gekommen. Wäre natürlich die einfachste Idee *g*
          Das oben geschriebene echo ist nur ein Teilbereich von der TAbelle. Das eigentliche echo ist noch viel länger, aber unkomplizierter, was Anführungszeichen angeht. Habe das echo immer weiter ausgebaut und erst jetzt das vorprogrammierte Problem erkannt. Ich denke ich werde es so lösen.

          Thx euch beiden :-)

          Kommentar


          • #6
            Ist ansich Geschmacksache, aber

            Ich mache gerne außen die doppelten Anführungszeichen und innen die Einfachen

            also z.B. echo "<a href='example.php' class=$links1>example</a>";

            Man spart sich so in der Regel Maskierungen wie \" und die Variablen werden auch in der Regel ohne Probleme ausgelesen. Bei komplexen Dingen kann man
            allerdings manchmal auch hier nicht auf das Maskieren verzichten.

            Vorteil:
            Einfach und übersichtlich. Gute Lesbarkeit des Quellcodes.

            Nachteile:
            Ist umständlich wenn man schon viel HTML-Code mit doppelten " hat und
            diesen nachträglich in PHP umwandeln will oder muss.

            Wichtig, das ganze funktioniert mit geradem ' und nicht mit ` oder ´.

            Ich habe schon viele Fehler in bestehenden Codes einfach dadurch beheben können, dass ich die Zeilen mit System " ' ' " anstatt mit System ' " " ' geschrieben habe.
            Zuletzt geändert von media-authoring; 15.07.2009, 16:48. Grund: Rechtschreibung

            Kommentar


            • #7
              Zitat von media-authoring Beitrag anzeigen
              Ich mache gerne außen die doppelten Anführungszeichen und innen die Einfachen

              also z.B. echo "<a href='example.php' class=$links1>example</a>";

              Man spart sich so in der Regel Maskierungen wie \" und die Variablen werden auch in der Regel ohne Probleme ausgelesen. Bei komplexen Dingen kann man
              allerdings manchmal auch hier nicht auf das Maskieren verzichten.

              Vorteil:
              Einfach und übersichtlich. Gute Lesbarkeit des Quellcodes.

              Nachteile:
              Ist umständlich wenn man schon viel HTML-Code mit doppelten " hat und
              diesen nachträglich in PHP umwandeln will oder muss.

              Wichtig, das ganze funktioniert mit geradem ' und nicht mit ` oder ´.

              Ich habe schon viele Fehler in bestehenden Codes einfach dadurch beheben können, dass ich die Zeilen mit System " ' ' " anstatt mit System ' " " ' geschrieben habe.
              Ich halte davon gar nix. Bei HTML sind " üblich. Wenn plötzlich ' vorkommen, sieht es erstens unübersichtlich aus, und zweitens kommt man sich so leicht mit Javascript-Code in die Quere, wo üblicherweise einfache Hochkomma verwendet werden.

              HTML-Code kann man nicht in PHP "umwandeln". Das sind zwei vollkommen unterschiedliche Dinge. Außerdem macht es auch überhaupt keinen Sinn tonnenweise HTML-Code mit echo auszugeben.

              Kommentar


              • #8
                Es ist Geschmackssache. Bei einigen Programmiersprachen bedeuten jedoch die ' eine Folge von Bytes 0 <= x <= 255 und die " eine Folge von Bytes 0 < x <= 255 mit einem abschliessenden 0 Byte. Diese zweite Variante nennt man vielerorts dann auch String (Zeichenkette mit abschliessendem 0 Byte).

                Kommentar


                • #9
                  PHP-Code:
                  echo "<a href='example.php' class=$links1>example</a>"
                  Um Gottes Willen Leute, arbeitet mit sauberer Zeichenkettenverknüpfung:
                  PHP-Code:
                  echo '<a href="example.php?id='.$id.'" class="'.$links1.'">example</a>'
                  Peter

                  PS: An alle Übeltäter. Code umbrechen, und zwar pronto!
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #10
                    arbeitet mit sauberer Zeichenkettenverknüpfung:
                    Das soll schön sein?

                    Neee...
                    Dann klopp ich das doch lieber per DOM zusammen.
                    Das ist schön !!
                    Wir werden alle sterben

                    Kommentar


                    • #11
                      Zitat von h3ll Beitrag anzeigen
                      Ich halte davon gar nix. Bei HTML sind " üblich. Wenn plötzlich ' vorkommen, sieht es erstens unübersichtlich aus, und zweitens kommt man sich so leicht mit Javascript-Code in die Quere, wo üblicherweise einfache Hochkomma verwendet werden.

                      HTML-Code kann man nicht in PHP "umwandeln". Das sind zwei vollkommen unterschiedliche Dinge. Außerdem macht es auch überhaupt keinen Sinn tonnenweise HTML-Code mit echo auszugeben.
                      Ok, umwandeln ist definitiv falsch ausgedrückt, doch ...
                      Was erzeugt man denn mit PHP letzlich?
                      Doch wohl html-Code für den Browser.

                      Natürlich mach es keinen Sinn tonnenweise (Wer sprach denn hiervon?) html-code mit echo auszugeben. Schließlich geht es ja darum, die Seite dynamisch
                      zu erstellen.

                      Konstrukte, wo ständig <? php-code...?> - Schnipsel und html-code abwechseln sind aber meiner Meinung hier das weitaus schlimmere übel, gerade wenn man sich in fremden Code einarbeiten muss.

                      Beim verwursteln von Javascript,PHP und html kann es Probleme durch die Schachtelung geben, egal welche Methode man benutzt.

                      Ich will aber keine Prinzipienfrage draus machen, ein Projekt, welches mit ' " " ' erstellt wurde, werde ich nicht auf " ' ' " ummodeln sondern meine Schreibweise an das Projekt anpassen.

                      Kommentar


                      • #12
                        Afaik sollte das ganze ordentlich im View erledigt werden:
                        PHP-Code:
                        <a href="example.php?id=<?php echo $id ?>" class="<?php echo $links1 ?>">example</a>
                        Noch schicker natürlich mit short_open_tags bzw. mit Zend_View und aktiviertem Streamwrapper:
                        PHP-Code:
                        <a href="example.php?id=<?=$id ?>" class="<?=$links1 ?>">example</a>
                        Anders haben Ausgaben meiner Meinung nach nichts im Quellcode verloren, weder als Echo noch sonstwie.

                        Kommentar


                        • #13
                          Zitat von media-authoring Beitrag anzeigen
                          Konstrukte, wo ständig <? php-code...?> - Schnipsel und html-code abwechseln sind aber meiner Meinung hier das weitaus schlimmere übel, gerade wenn man sich in fremden Code einarbeiten muss.
                          Dann hast du bis jetzt nur Schrott-Code gesehen. Sauber geschrieben ist ein Template mit php-Tags deutlich lesbarer als abwechselnd haufenweise echo dazwischen.

                          Und im eigentlichen Programmcode hat sowas wie echo eh nix verloren.

                          Kommentar


                          • #14
                            Zitat von PHP-Desaster Beitrag anzeigen
                            Afaik sollte das ganze ordentlich im View erledigt werden:
                            PHP-Code:
                            <a href="example.php?id=<?php echo $id ?>" class="<?php echo $links1 ?>">example</a>
                            Das wird aber spätestens bei solchen Dingen vor Allem für Anfänger schnell unübersichtlich und somit fehleranfällig:
                            PHP-Code:
                            <div class="inhalt">
                              <table>
                            <?php
                              $open 
                            fopen ('blubb.txt');
                              while (
                            $line fgets ($open"r"))
                              {
                                
                            $trenn explode (';'$line);
                            ?>
                              <tr>
                                <td><?php echo $trenn[0]; ?></td>
                                <td><?php echo $trenn[1]; ?></td>
                                <td><?php echo $trenn[2]; ?></td>
                              </tr>
                            <?php
                              
                            }
                            ?>
                              </table>
                            </div>
                            Beispiele dazu gibt es hier im Forum zuhauf. Wobei ich persönlich xslt als Templatesprache bevorzuge. Aber das ist eine andere Geschichte.

                            Peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar


                            • #15
                              Zitat von Kropff Beitrag anzeigen
                              Das wird aber spätestens bei solchen Dingen vor Allem für Anfänger schnell unübersichtlich und somit fehleranfällig:
                              PHP-Code:
                              <div class="inhalt">
                                <table>
                              <?php
                                $open 
                              fopen ('blubb.txt');
                                while (
                              $line fgets ($open"r"))
                                {
                                  
                              $trenn explode (';'$line);
                              ?>
                                <tr>
                                  <td><?php echo $trenn[0]; ?></td>
                                  <td><?php echo $trenn[1]; ?></td>
                                  <td><?php echo $trenn[2]; ?></td>
                                </tr>
                              <?php
                                
                              }
                              ?>
                                </table>
                              </div>
                              Ein fopen hat in einem View nix verloren! Das gehört zur Verarbeitung und nicht zur Ausgabe.

                              Und Anfänger verhaspeln sich ständig mit irgendwelchen gigantischen und unübersichtlichen echo-Kontruktionen, wie man hier und in anderen Foren sieht. Also würd ich gern wissen, wo der Mehrwert von echo für Anfänger liegen soll.

                              Außerdem, warum sollte man einem Anfänger den "falschen" Weg beibringen? Wär es nicht klüger, wenn er es gleich ordentlich lernt?
                              Zuletzt geändert von h3ll; 15.07.2009, 19:59.

                              Kommentar

                              Lädt...
                              X