Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Unnötige Leerstellen von PHP nach HTML

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Unnötige Leerstellen von PHP nach HTML

    Moin, moin,
    als PHP-Laie stehe ich derzeit vor einer Herausforderung: Mit dem folgenden (Teil-) PHP-Code will ich eine Tabelle generieren, die einen Schatten um ein hochgeladenes Bild darstellt:

    echo "<table style=\"{ text-align: left; }\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
    echo "<tbody>\n";
    echo "<tr>\n";
    echo "<td style=\"{ vertical-align: middle; text-align: center; }\">\n";
    if ($NaechstesBild > ($AnzBilderImOrdner - 1))
    {
    echo "<a href=\"show_pic.php?dir=".$BilderVerzeichnis."&ind expage=".$DirectoryIndex."&picindex=0\">\n";
    }
    else
    {
    echo " <a href=\"show_pic.php?dir=".$BilderVerzeichnis."&ind expage=".$DirectoryIndex."&picindex=".$NaechstesBi ld."\">\n";
    }
    if ($Shrinked == 1)
    {
    if ($info[0] > $ShrinkedWidth) echo "<img src=\"".$GalleryHomeDir."/".$BilderVerzeichnis."/".$Bilder[$BildIndex]."\" width=\"".$ShrinkedWidth."\" border=\"0\">\n";
    else echo " <img src=\"".$GalleryHomeDir."/".$BilderVerzeichnis."/".$Bilder[$BildIndex]."\" border=\"0\">\n";
    }
    else echo "<img src=\"".$GalleryHomeDir."/".$BilderVerzeichnis."/".$Bilder[$BildIndex]."\" border=\"0\">\n";
    echo "</a>\n";
    echo "</td>\n";
    echo "<td style=\"{ vertical-align: top; text-align: left; width: 4px; background-image: url(images/back_rm.gif); background-repeat: repeat-y; }\">\n";
    echo "<img style=\"{ width: 4px; height: 5px; }\" src=\"images/back_ro.gif\">\n";
    echo "</td>\n";
    echo "</tr>\n";
    echo "<tr>\n";
    echo "<td style=\"{ text-align: left; vertical-align: top; height: 5px; background-image: url(images/back_u.gif); background-repeat: repeat-x; }\">\n";
    echo "<img style=\"{ width: 4px; height: 5px; }\" src=\"images/back_lu.gif\">\n";
    echo "</td>\n";
    echo "<td style=\"{ vertical-align: top; text-align: left; height: 5px; width: 4px; }\">\n";
    echo "<img style=\"{ width: 4px; height: 5px; }\" src=\"images/back_ru.gif\">\n";
    echo "</td>\n";
    echo "</tr>\n";
    echo "</tbody>\n";
    echo "</table>\n";

    Der von PHP nach HTML generierte Quelltext sieht so aus:

    <TABLE style="TEXT-ALIGN: left" cellSpacing=0 cellPadding=0 border=0>
    <TBODY>
    <TR>
    <TD style="VERTICAL-ALIGN: middle; TEXT-ALIGN: center">
    <A href="Judo-Löwen-Lauenau - 15.06.2008 Thueringer ega-Pokal der U13 in Erfurt&amp;indexpage=1&amp;picindex=1">
    <IMG src="Judo-Löwen-Lauenau-Dateien/Annika%2520Merle%2520Maike.jpg" border=0> </A></TD>
    <TD style="BACKGROUND-IMAGE: url(images/back_rm.gif); VERTICAL-ALIGN: top; WIDTH: 4px; BACKGROUND-REPEAT: repeat-y; TEXT-ALIGN: left">
    <IMG style="WIDTH: 4px; HEIGHT: 5px" src="Judo-Löwen-Lauenau-Dateien/back_ro.gif"> </TD></TR>
    <TR>
    <TD style="BACKGROUND-IMAGE: url(images/back_u.gif); VERTICAL-ALIGN: top; BACKGROUND-REPEAT: repeat-x; HEIGHT: 5px; TEXT-ALIGN: left">
    <IMG style="WIDTH: 4px; HEIGHT: 5px" src="Judo-Löwen-Lauenau-Dateien/back_lu.gif"> </TD>
    <TD style="VERTICAL-ALIGN: top; WIDTH: 4px; HEIGHT: 5px; TEXT-ALIGN: left">
    <IMG style="WIDTH: 4px; HEIGHT: 5px" src="Judo-Löwen-Lauenau-Dateien/back_ru.gif">
    </TD></TR></TBODY></TABLE>

    Folgendes Problem ist aufgetreten: Firefox stellt den Rahmen einwandfrei dar, aber der Internetexplorer leider nicht, da in jeder Zelle der Tabelle eine Leerstelle generiert wurde, die vom IE als Zeichen verstanden und dargestellt wird, wodurch die (kleinen) Bilder in den Zellen verschoben bzw. gleichzeitig die Zeilen nicht in den befohlen Höhen angezeigt werden.

    Frage: Wie muss der PHP-Code verändert werden, dass bei der Generierung der HTML-Seiten keine Leerstellen entstehen und somit die Tabelle auch im IE korrekt angezeigt werden kann?

    Vielen Dank schon mal für Eure Hilfe!

    MfG

    Holli91

  • #2
    Hast du mal versucht den HTML-Code im PHP Bereich nicht so umständlich auszugeben und ein bisschen weniger \n zu benutzen? Verstehe z.B. nicht, warum du zwischen einem <img> Tag und einem </a> einen Zeilenumbruch haben willst. Desweiteren würde ich dir empfehlen, HTML-Teile in denen nur wenig oder gar kein PHP vorkommt aus dem <?php ?> Bereich rauszunehmen und als normales HTML darzustellen. Allfällige einzelne PHP-Variablen kannst du ja dann mit <?php echo $variable; ?> einfügen. Dann hast du in deinem Editor auch das Syntax-Highlighting des HTML-Codes und du kannst die Zeilenumbrüche so einbauen, wie du sie willst, Code einrücken etc. Also insgesamt viel übersichtlicher.

    Kommentar


    • #3
      Hallo Montellese,
      vielen Dank für Deine schnelle Antwort. Du hast offensichtlich auf den ersten Blick erkannt, dass da ein Laie am Werk ist. Hintergrund der derzeitigen Version ist schlichtweg: Ich habe keine Ahnung von PHP und nur eine kostenlosen Programm aus dem Internet an unsere Homepage angepasst! Ich war also schon froh, überhaupt diese Tabelle um das Bild mit PHP hinbekommen zu haben. Daher auch die Umständlichkeit. Meine Versuche, in eine fertige Tabelle nur an den Stellen, wo es nötig ist, die PHP-Teile einzufügen, sind an irgendwelchen (mir natürlich unverständlichen) Befehlen in der dazugehörigen function.inc gescheitert. Deshalb die Bitte:
      Ist es Dir möglich, mir den dargstellten PHP-Code so zu korrigieren, dass die unnötigen Zeilenumbrüche und Leerzeichen weg sind? Es ist sicher erkennbar, dass ich praktisch in den 4 Zellen der Tabelle jeweils nur ein Bild ohne weitere Zeichen haben möchte.
      MfG
      Holli91

      Kommentar


      • #4
        Sei doch froh, andere wären glücklich über ne Lehrstelle Ne mal im Ernst deinen Code da tue ich mir nicht an, da tue ich dir lieber das hier an.... und vorsicht: du könntest etwas lernen

        Kommentar


        • #5
          Ich glaube kaum, dass das, was du hier zeigst der vom Browser aus deinem PHP generierte Code ist. Ich kenne keinen Browser, der Tags automatisch (und mindestens in XHTML auch ungültig) in Grossbuchstaben umwandelt. Des weiteren verwende dringend PHP-Tags für den Code und ersetze all diese «\"» mit «'», um den Code etwas lesbarer zu machen.
          Gruss
          L

          Kommentar


          • #6
            Steht das nicht in der Ankündigung, dass man PHP Tags verwenden soll? Sowas kann sich doch keiner zur gemüte ziehen, so einen unformatierten Code...
            [B]Mfg Tomtaz[/B]
            [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

            Kommentar


            • #7
              Zeilenumbrüche entsprechen in html Leerzeichen. Ansonsten gilt das Gesagte.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                Vielen Dank für Eure Hilfe, der entscheidende Hinweis ist der von nikosch77-new (Zeilenumbrüche) und von Montellese (nicht jedes Tag muss einzeln aufgerufen werden).
                Es tut mir andererseits Leid, wenn ich dem einen oder anderen nicht in geeigneter Form mein Problem dargestellt habe und zu wenig Fachkompetenz mitbringe. Ich war davon ausgegangen, dass hier auch einem Laien geholfen werden könnte. Noch für lazydog: Ob Du das jetzt glaubst oder nicht - der HTML-Quelltext ist tatsächlich aus der IE-Quelltextanischt kopiert worden.

                Kommentar


                • #9
                  Beim IE verwundert mich nichts, wenn man da per JavaScript Tags generieren lässt, sind die auch alle in Grossbuchstaben.

                  Kommentar

                  Lädt...
                  X