Datenschutzerklärung

PHP Datei und XHTML Valide einträge?

Validome - Forum

Startseite Validome
RSS 2.0  
Sie sind nicht angemeldet. Atom 1.0  
Forum Home / HTML und XHTML-Forum /

PHP Datei und XHTML Valide einträge?

  Beitrag schreiben
Autor
Beitrag Seiten: 1
Shorty
Mitglied

Registriert: 11.06.2006
Beiträge: 24
Hallo ich habe in einer PHP Datei XHTM Einträge und zwar folgenden:


$otherstats .= "<table border=0 cellpadding=0 cellspacing=0 width=\"100%\" class=\"tableinborder\">
                <td valign=top align=left width=\"50%\" class=\"tableb\">
                <table cellpadding=1 cellspacing=1 border=0 style=\"width:{$style['tableinwidth']}\" class=\"tableinborder\">";

Diesen habe ich wie folgt geändert:


$otherstats .= "<table border="0" cellpadding="0" cellspacing="0" width=\"100%\" class=\"tableinborder\">
                <td valign="top" align="left" width=\"50%\" class=\"tableb\">
                <table cellpadding="1" cellspacing="1" border="0" style=\"width:{$style['tableinwidth']}\" class=\"tableinborder\">";

Sollte eigentlich richtig sein , aber wenn ich das so mache bekomme ich , folgende Fehlermeldung:

Parse error: syntax error, unexpected T_LNUMBER in /srv/www/web1/html/statistik.php on line 226

Wie müsste es richtig sein?

Gruss


16.06.2006 01:52:31
  Beitrag schreiben
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 654
Hallo,
border="0" nach border=\"0\" umwandeln, ebenso alle anderen Stellen wo das \ fehlt.


_______________________________________
mfg
Thomas Mell

www.validome.org

16.06.2006 01:56:36
  Beitrag schreiben
Shorty
Mitglied

Registriert: 11.06.2006
Beiträge: 24
Danke das scheint geholfen zu haben , aber darin sind noch mehr einträge die fehler melden und ich habe keine ahnung wie ich die beheben kann?

http://www.validome.org/validate/?uri=http://www.wbb-support.de/statistik.php&lang=ge&extended=1&viewSource=1&doctype=doctypeAUTO&charset=charsetAUTO&userAgent=Mozilla/4.0%20%28compatible%3b%20MSIE%206.0%3b%20Windows%20NT%205.1%29

Ich kann hier leider nichts anhängen , sonst hätte ich die php mal angehängt und jemand könnte sie sich anschauen , es sind nicht viele einträge?


16.06.2006 02:17:19
  Beitrag schreiben
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 654
Hallo,
die Fehlermeldungen sind eigentlich eindeutig genug, jede Menge Tags die nicht geschlossen wurden (bei HTML ist das nicht immer, bei XHTML immer Notwendig).
Da wirst Du Dich wohl alleine durchwuseln müssen ;-)


_______________________________________
mfg
Thomas Mell

www.validome.org

16.06.2006 15:08:50
  Beitrag schreiben
Shorty
Mitglied

Registriert: 11.06.2006
Beiträge: 24
Genau das dachte ich mir , da ist mein Problem den in der php Datei ist es nicht so leicht ersichtlich wo und wie das zu beheben ist?

16.06.2006 15:15:39
  Beitrag schreiben
marlo
Mitglied

Ort: Wien
Registriert: 07.06.2007
Beiträge: 73
noch kurze Info wie man sich das Leben mit den escapten Anführungszeichen (escapet bedeutet dass mit dem Backslash \" :-)) im PHP/HTML-Code leichter machen kann.

Schreibs doch einfach so:

Code:

$otherstats .= '<table border="0" cellpadding="0" cellspacing="0" width="100%" class="tableinborder">
                <td valign="top" align="left" width="50%" class="tableb">
                <table cellpadding="1" cellspacing="1" border="0" style="width:{$style['tableinwidth']}" class="tableinborder">';

Was bei dieser Variante zu beachten ist, ist dass man wenn man zB einen Zeilenumbruch am Ende der Zeile haben will ."\n" anhängen müsste, ich weis zwar nicht warum aber .'\n' macht keine neue Zeile. Weis jemand warum das so ist?

Nachtrag:

Habe mir den Quelltext jetzt nochmals genauer angesehen und da sind ja so ' dings versteckt, jetzt müssten natürlich diese escapet werden Betrifft den Part:

border="0" style="width:{$style['tableinwidth']}" class="tableinborder"

die eleganteste Lösung ist diese:

border="0" style="width:{'.$style['tableinwidth'].'}" class="tableinborder"

Was machen eigentlich die geschwungenen Klammern bei den style - Angaben? Habe das schon öfter gesehen, bin aber nicht schlau daraus geworden. Sind das so eine Art Platzhalter? Oder gehört das zum PHP-Code um nicht den Inhalt der Variable auszugeben sondern den Namen der Variable?


lg
roman

Beitrag geändert von marlo (26.06.2007 14:51:16)


26.06.2007 14:46:04
http://www.webcomplete.at Beitrag schreiben
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 654
Hi,

'\n' macht keine neue Zeile. Weis jemand warum das so ist?
\n muß in doppelten Anführungszeichen stehen '\n' wird genau so ausgegeben, "\n" macht ne neue Zeile.

Die geschwungenen Klammern stammen von PHP. Damit kann man Variablen und Arrays in Strings "einsetzen".
Normalerweise: "string" . $style['tableinwidth'] . "string"
Mit Klammern: "string{$style['tableinwidth']}string"
Besonders in HTML wird dann die Sache lesbarer.

Ich habe mir angewöhnt in PHP HTML folgendermaßen zu schreiben:

Code:

$variable = "<table class='{$style['myClass']}' border='$border' cellpadding='0' cellspacing='0' width='100%' class='tableinborder'>
  <tr>
    <td>";

Man spart sich das aufreißen des Strings mit "." wenn eine PHP-Variable rein soll, und die \n.


_______________________________________
mfg
Thomas Mell

www.validome.org

26.06.2007 18:25:46
  Beitrag schreiben
marlo
Mitglied

Ort: Wien
Registriert: 07.06.2007
Beiträge: 73
Ahhaaa, na wieder etwas gelernt. THX!

Was ich meinte war dieses Konstrukt im PHP Code:

Code:

<?php
$hallo = "Der ausgegebene Wert";
$variable = "hallo";

print ${$variable};
?>

Klar das funkt natürlich nicht ... class='$style['myClass']" ... darum die { } gut zu wissen.

Schon eigenartig dass man sich so wirklich seinen eigenen Steel beim Programmieren aneignet. Hauptsache man hat einen und kann seinen eigenen Code dann wieder identifiziere :-) bzw. auch jemand anderer den Code lesen kann wenn man den Steel des Schreibers mal heraußen hat.

Gleich mal eine Frage was ihr bevorzugt:

Code:

function blabla() {
     diesunddas();
}

ODER

function blabla()
{
     diesunddas();
}

Danke HTMELL!


26.06.2007 18:52:39
http://www.webcomplete.at Beitrag schreiben
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 654
>>Gleich mal eine Frage was ihr bevorzugt:
Ersteres, das es sich um einen Block handelt, erkannt man bereits an der Einrückung. Die zweite Schreibweise bläht den Code nur unnötig auf. Ist aber alles Geschmacksache...


_______________________________________
mfg
Thomas Mell

www.validome.org

26.06.2007 19:42:53
  Beitrag schreiben
marlo
Mitglied

Ort: Wien
Registriert: 07.06.2007
Beiträge: 73
bevorzuge ebenfalls variante 1, so hab ich es noch in der schule gelernt, sehe aber viel code der nach variante 2 abläuft, finde ich unübersichtlich.

lg
roman


27.06.2007 13:48:16
http://www.webcomplete.at Beitrag schreiben
marlo
Mitglied

Ort: Wien
Registriert: 07.06.2007
Beiträge: 73
ich schreibe auch gerne:

Code:

if ($das == $dies) { print "hallo"; }

und nicht

Code:

if ($dies == $das) print "hallo";

habe lieber IMMER die klammern, so erkenne ich einen block auf einen blick ;-)


27.06.2007 13:49:55
http://www.webcomplete.at Beitrag schreiben
Seiten: 1   Beitrag schreiben
Wechsel zu

Valid HTML 4.01