[PHP] probleem met %-teken

Pagina: 1
Acties:
  • 145 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

  • FlowDesign
  • Registratie: Januari 2002
  • Laatst online: 14:18
Ik word een beetje gek van dit probleem. Misschien is de oplossing wel heel simpel, maar ik kom er niet uit. Heb al vanalles geprobeerd en op php.net gezocht etc.

Ik heb een php-pagina met een zoekfunctie die in meerdere kolommen van een tabel zoekt en de resultaten in een html-tabbelletje uitspuugt als resultaat.
Werkt allemaal perfect. Maar nu wil ik een kader om iedere tabel heenzetten.
Maar omdat sommige rows in de tabel variabel zijn, wil ik dat de lijn van het kader zich qua grootte ook aan de row aanpast.
Dus dan zeggen we bijvoorbeeld [img]....[/img]
Dat is simpel. Maar in de php code zit ook een %-teken die weer verwijst naar een opgehaald resultaat uit een row uit de tabel van de database. Kijk maar even naar het laatste stuk van de code van de php-pagina:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
else 
{  
// Bij de eerste keer niets weergeven. 
$query = "SELECT * FROM legetabel WHERE leeg LIKE 'leeg'"; //maak een tabel aan met een veld waarin leeg staat
} 
// Haal de gegeven uit te de database. 
$resultaat = mysql_query("$query",$db); 
echo "<table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"; 

while ($mijnrij = mysql_fetch_row($resultaat))  
{ 
printf("
  <tr>
    <td height=\"10\">[img]\"kader_lb.gif\"[/img]</td>
    <td height=\"10\" colspan=\"3\">[img]\"kader_hor.gif\"[/img]</td>
    <td height=\"10\" width=\"11\">[img]\"kader_rb.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td width=\"280\"><b>%s %s</b></td>
    <td width=\"70\">[ %s ]</td>
    <td width=\"230\">Tel: %s</td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td colspan=\"2\">%s %s</td>
    <td>Fax: %s</td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td colspan=\"2\">%s %s</td>
    <td>Mob: %s</td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td valign=\"bottom\" colspan=\"2\">&nbsp;</td>
    <td valign=\"bottom\">Email: <a href=\"mailto:%s\" </a> %s </td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td height=\"20\" colspan=\"3\">&nbsp;</td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td colspan=\"3\">Functiegebieden: %s</td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td colspan=\"3\">Toelichting: %s</td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td valign=\"bottom\" colspan=\"3\">&nbsp;</td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td colspan=\"3\">Systeemkennis: %s</td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td valign=\"bottom\" colspan=\"3\">&nbsp;</td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td valign=\"bottom\" colspan=\"3\">Werkervaring: %s</td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td valign=\"bottom\" colspan=\"3\">&nbsp;</td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td width=\"10\" height=\"20\" align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
    <td height=\"20\" colspan=\"3\">datum toegevoegd: %s</td>
    <td align=\"left\" valign=\"top\">[img]\"kader_ver.gif\"[/img]</td>
  </tr>
  <tr> 
    <td height=\"10\">[img]\"kader_lo.gif\"[/img]</td>
    <td height=\"10\" colspan=\"3\">[img]\"kader_hor.gif\"[/img]</td>
    <td height=\"10\">[img]\"kader_ro.gif\"[/img]</td>
  </tr>",
 $mijnrij[1], $mijnrij[2], $mijnrij[3], $mijnrij[8], $mijnrij[4], $mijnrij[5], $mijnrij[9], $mijnrij[6], $mijnrij[7], $mijnrij[10], $mijnrij[11], $mijnrij[11], $mijnrij[13], $mijnrij[14], $mijnrij[15], $mijnrij[16], $mijnrij[17]);  
} 
echo "</table>\n";
}


Iedere %s verwijst naar een $mijnrij[x],
maar als ik nu in de code schrijf [img]....[/img] dan krijg ik een parse-error: too few arguments in printf doordat ie denkt dat dat %-teken ook naar een $mijnrij[x], staat te verwijzen.

Hoe kan ik dit oplossen? :?

Mustang Mach-E SR RWD | MINI Countryman Cooper S


Acties:
  • 0 Henk 'm!

  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 18:02

BrZ

ehmz, gewoon de % escapen met een slash?

Acties:
  • 0 Henk 'm!

  • FlowDesign
  • Registratie: Januari 2002
  • Laatst online: 14:18
[img]......height=\"100\%\"[/img] werkt niet

Mustang Mach-E SR RWD | MINI Countryman Cooper S


Acties:
  • 0 Henk 'm!

  • dreeke
  • Registratie: December 2000
  • Laatst online: 11-09 16:04

dreeke

outdated icon

Probeer het eens met height=\"100 %\"

Waarom zet je een \ achter de 100?

Bij gebrek aan uw reclame staat hier mijn handtekening.


Acties:
  • 0 Henk 'm!

  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 18:02

BrZ

dreeke schreef op 28 januari 2003 @ 01:11:
Probeer het eens met height=\"100 %\"

Waarom zet je een \ achter de 100?
omdat ik zei dattie eens die % moest escapen ;)
Maar zelf ff getest, en dat werkt idd niet ;)

loze work around, maar het werkt wel:
zet ipv % %s neer en zet tussen je variablen "%" op die positie :)

[ Voor 19% gewijzigd door BrZ op 28-01-2003 01:15 ]


Acties:
  • 0 Henk 'm!

  • dreeke
  • Registratie: December 2000
  • Laatst online: 11-09 16:04

dreeke

outdated icon

BrZ schreef op 28 January 2003 @ 01:13:

loze work around, maar het werkt wel:
zet ipv % %s neer en zet tussen je variablen "%" op die positie :)

Beetje een slomehans lapmiddel :P

Er zal toch best een andere manier zijn om gewoon een % tekentje als output te krijgen :?

Bij gebrek aan uw reclame staat hier mijn handtekening.


Acties:
  • 0 Henk 'm!

  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 18:02

BrZ

dreeke schreef op 28 January 2003 @ 01:16:

[...]

Beetje een slomehans lapmiddel :P

Er zal toch best een andere manier zijn om gewoon een % tekentje als output te krijgen :?
Ja, en ik heb 'm gevonden... :D
dubbel procent teken :) (%% dus) :)

Acties:
  • 0 Henk 'm!

  • dreeke
  • Registratie: December 2000
  • Laatst online: 11-09 16:04

dreeke

outdated icon

BrZ schreef op 28 januari 2003 @ 01:19:
[...]

Ja, en ik heb 'm gevonden... :D
dubbel procent teken :) (%% dus) :)

en hoe doe je dan 2 % tekentjes achter elkaar als output >:)

Bij gebrek aan uw reclame staat hier mijn handtekening.


Acties:
  • 0 Henk 'm!

  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 18:02

BrZ

dreeke schreef op 28 januari 2003 @ 01:20:

[...]

en hoe doe je dan 2 % tekentjes achter elkaar als output >:)
%%%% :*

Acties:
  • 0 Henk 'm!

  • dreeke
  • Registratie: December 2000
  • Laatst online: 11-09 16:04

dreeke

outdated icon

Bij gebrek aan uw reclame staat hier mijn handtekening.


Acties:
  • 0 Henk 'm!

  • FlowDesign
  • Registratie: Januari 2002
  • Laatst online: 14:18
BrZ schreef op 28 January 2003 @ 01:13:
[...]
loze work around, maar het werkt wel:
zet ipv % %s neer en zet tussen je variablen "%" op die positie :)
Zal ook niet gaan want dan moet ik het ergens in m'n database-tabel op gaan slaan bij iedere entry, plus ik wil het %-teken op aardig wat plaatsen in die html-tabel voor laten komen. Dus dat is geen oplossing.

$procent = "100%";
[img]......[/img]
werkt overigens ook niet :/

Mustang Mach-E SR RWD | MINI Countryman Cooper S


Acties:
  • 0 Henk 'm!

  • FlowDesign
  • Registratie: Januari 2002
  • Laatst online: 14:18
BrZ schreef op 28 January 2003 @ 01:19:
[...]

Ja, en ik heb 'm gevonden... :D
dubbel procent teken :) (%% dus) :)
Ga ik ff proberen! :)

Mustang Mach-E SR RWD | MINI Countryman Cooper S


Acties:
  • 0 Henk 'm!

  • FlowDesign
  • Registratie: Januari 2002
  • Laatst online: 14:18
You are right! :) %% werkt wel :D

Kun je nagaan, zulke stomme dingen kun je je echt urenlang op blind staren 8-)

Mustang Mach-E SR RWD | MINI Countryman Cooper S


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 17:52
Dit staat gewoon in de PHP handleiding hoor. Een beetje meer zoeken en een beetje minder layout-verneukende code plaatsen kan geen kwaad.

[ Voor 5% gewijzigd door Soultaker op 28-01-2003 01:29 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Soultaker schreef op 28 januari 2003 @ 01:28:
Dit staat gewoon in de PHP handleiding hoor. Een beetje meer zoeken en een beetje minder layout-verneukende code plaatsen kan geen kwaad.
Uhu en het bij de relevante code houden is ook wel wat. Kan trouwens niet zeggen dat je code erg leesbaar is met je printf(%s %s %s %s %s, $rij[0], $rij[1], $2], $enz). Kijk eens naar mysql_fetch_array() en mysql_fetch_object()

Wanneer je een enkele quote ' gebruikt hoef je je " niet te escapen ook
print '<table cellpadding="2">'; // enzovoort...

[ Voor 12% gewijzigd door Verwijderd op 28-01-2003 10:48 ]


Acties:
  • 0 Henk 'm!

  • TA2
  • Registratie: Februari 2002
  • Laatst online: 30-09-2022

TA2

Waarom schrijf je in php alle " tekens als \" ?
Je kunt gewoon ' gebruiken.

Acties:
  • 0 Henk 'm!

  • Stoffel
  • Registratie: Mei 2001
  • Laatst online: 12-09 08:38

Stoffel

Engineering the impossible

TA2 schreef op 28 January 2003 @ 10:52:
Waarom schrijf je in php alle " tekens als \" ?
Je kunt gewoon ' gebruiken.
dan doen heel veel mensen, al snap ik niet waarom..?
ik gebruik ook altijd ' '

Acties:
  • 0 Henk 'm!

  • TA2
  • Registratie: Februari 2002
  • Laatst online: 30-09-2022

TA2

Als ik namelijk in php een % teken gebruik voor een html tag dan werkt t gewoon.
bv. echo "<TD height='100%'>";
Werkt gewoon.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:45

Janoz

Moderator Devschuur®

!litemod

TA2 schreef op 28 January 2003 @ 11:00:
Als ik namelijk in php een % teken gebruik voor een html tag dan werkt t gewoon.
bv. echo "<TD height='100%'>";
Werkt gewoon.

Maar het gaat hier niet om de echo functie, maar de printf functie. Die werkt net weer ietsje anders. En hierbij is % wel een speciaal teken.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

_-SToFFeL-_ schreef op 28 januari 2003 @ 10:55:
[...]


dan doen heel veel mensen, al snap ik niet waarom..?
ik gebruik ook altijd ' '
Als je in je php code double quote " gebruikt, hoef je single quote niet te escapen. En omgekeerd.

Dus
PHP:
1
echo '<a href="www.blaat.nl">Blaat</a>';


werkt dan, en

PHP:
1
echo "<a href='www.blaat.nl'>Blaat</a>";


ook.

[ Voor 13% gewijzigd door Verwijderd op 28-01-2003 11:05 ]


Acties:
  • 0 Henk 'm!

  • TA2
  • Registratie: Februari 2002
  • Laatst online: 30-09-2022

TA2

Wat zijn de verschillen tussen echo en printf ?
Ik gebruik namelijk altijd echo.

Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
TA2 schreef op 28 January 2003 @ 11:09:
Wat zijn de verschillen tussen echo en printf ?
Ik gebruik namelijk altijd echo.

printf => print formatted
maw je kan bepalen of een bepaalde variabele in een bepaalde vorm geformatteerd wordt. Denk aan een string gecapped op een x aantal tekens, denk aan een getal met een x aantal decimalen ed.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 28 januari 2003 @ 11:05:
[...]
Als je in je php code double quote " gebruikt, hoef je single quote niet te escapen. En omgekeerd.
[...]
Waarbij de 1e de voorkeur geniet omdat a) in HTML het gebruik van dubbele quotes voor properties standaard is, en b) de inhoud van je echo-string hier niet geparsed hoeft te worden.
Topicstarter zou dan ook net zo goed het volgende kunnen doen:
PHP:
1
2
3
4
5
echo '<table width="100%" height="100%">
        <tr>
          <td>'.$mijnrij[1].'</td>
        </tr>
      </table>';

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Stoffel
  • Registratie: Mei 2001
  • Laatst online: 12-09 08:38

Stoffel

Engineering the impossible

dus begrijp ik het goed dan dat die eerste optie ook sneller is?

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

_-SToFFeL-_ schreef op 28 January 2003 @ 11:23:
[...]


dus begrijp ik het goed dan dat die eerste optie ook sneller is?
Klopt; PHP neemt de inhoud letterlijk en hoeft niet te kijken of er vars geparsed hoeven te worden. Dit is imho sowieso smerig:
PHP:
1
echo "er zit een $dier in de boom";

beter is dus:
PHP:
1
echo 'er zit een '.$dier.' in de boom';

Ook geen geklooi met escapen meer :)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 13-09 20:47

LauPro

Prof Mierenneuke®

Ik heb ik in de code altijd dubbele quotes en voor html enkele mits ze nodig zijn. width=100px kan dus gewoon maar bij procenten maak ik er wel width='100%' van. Ik gebruik zo weinig mogelijk quotes in mijn html-code (heten volgens mij geen quotes meer dan). Bij bijvoorbeeld een input veld krijg je dan dit: <input type=text name=naam value="" />.
De dubbele aan het einde lijken overbodig maar daar komt 'user-defined' tekst in te staan (als het formulier niet goed is zegmaar) waar dus quotes e.d. in voor kunnen komen.

Kan je geen reet schelen of ik nu wel of niet aan de standaard voldoe, zolang er in een naam van een element geen 'vreemde tekens' (en een é of ë is geen vreemd teken voor mij een % wel) in de waarde staan dan komen er echt geen quotes omheen. Ik ga mezelf een beetje op kosten jagen door meer traffic dan nodig te veroorzaken, nog asociaal ook voor mensen met langzamere verbindingen ;).

[ Voor 4% gewijzigd door LauPro op 28-01-2003 11:47 ]

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

LauPro schreef op 28 January 2003 @ 11:43:
Ik heb ik in de code altijd dubbele quotes en voor html enkele mits ze nodig zijn. width=100px kan dus gewoon maar bij procenten maak ik er wel width='100%' van. Ik gebruik zo weinig mogelijk quotes in mijn html-code (heten volgens mij geen quotes meer dan). Bij bijvoorbeeld een input veld krijg je dan dit: <input type=text name=naam value="" />.
De dubbele aan het einde lijken overbodig maar daar komt 'user-defined' tekst in te staan (als het formulier niet goed is zegmaar) waar dus quotes e.d. in voor kunnen komen.

Kan je geen reet schelen of ik nu wel of niet aan de standaard voldoe, zolang er in een naam van een element geen 'vreemde tekens' (en een é of ë is geen vreemd teken voor mij een % wel) in de waarde staan dan komen er echt geen quotes omheen. Ik ga mezelf een beetje op kosten jagen door meer traffic dan nodig te veroorzaken, nog asociaal ook voor mensen met langzamere verbindingen ;).
En DTD's doe je zeker ook niet aan? Of een charset specificeren?
Ik hoop niet dat je ooit eens een XHTML strict pagina hoeft te maken of met XML moet gaan werken, want dat wordt natuurlijk niets met zo'n houding. Echt zoiets van "maar IE laat het toch goed zien?" Daar hebben we natuurlijk geen standaards voor ontwikkeld.
Maar je sluit wel netjes je input tag af - weet je dat het ook werkt zonder die spatie/ op het einde, scheelt weer 2 bytes ;)
Die paar bytes voor wat extra quotes maken ook niet zoveel uit hoor, ik vind het gewoon luiheid als je niet eens volgens de HTML standaarden wenst te werken.
nofi hoor ;)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 13-09 20:47

LauPro

Prof Mierenneuke®

crisp schreef op 28 January 2003 @ 11:58:
[...]

En DTD's doe je zeker ook niet aan? Of een charset specificeren?
Ik hoop niet dat je ooit eens een XHTML strict pagina hoeft te maken of met XML moet gaan werken, want dat wordt natuurlijk niets met zo'n houding. Echt zoiets van "maar IE laat het toch goed zien?" Daar hebben we natuurlijk geen standaards voor ontwikkeld.
Maar je sluit wel netjes je input tag af - weet je dat het ook werkt zonder die spatie/ op het einde, scheelt weer 2 bytes ;)
Die paar bytes voor wat extra quotes maken ook niet zoveel uit hoor, ik vind het gewoon luiheid als je niet eens volgens de HTML standaarden wenst te werken.
nofi hoor ;)
Ik ga niet zelf een DTD aanmaken, ik geef wel aan welke ik gebruik en ik geef ook aan welke charset ik gebuik (nog niet overal, maar bij 'nieuwe' pagina's wel). Maar om nu overal quotes te gaan plaatsen gaat mij te ver. Dan schrijven ze maar een fatsoenlijke parser die er rekening mee houd, en voor de btw: die 2 bytes maken wel degelijk uit. Je kan zo met de juiste technieken een pagina meer dan 70% verkleinen. En bovendien, waarom zou je extra informatie meegeven die de eindgebruiker toch niet ziet? Bovendien is de standaard gewoon bagger want normaal mag er dus niet een hoogte van een tabel worden aangegeven, dan moet ik dus met een div'je gaan kloten wat er allemaal veel complexer is dan gewoon height='100%'.

Overigens is xml idd wat kieskeuriger (vooral met WAP e.d.) en dat is ook de reden waarom ik alles 'xml' maak. In principe moet een 'domme' parser gewoon alle tabs e.d. terug kan zetten zonder dat hij hoeft te weten dat een br enkel element is.

En dan nog vind ik het nog gewoon echt asociaal voor mensen met een analoge verbinding om allemaal extra zooi aan quotes, 'enters' en tabs mee te zenden.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Acties:
  • 0 Henk 'm!

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 09:27

Kaastosti

Vrolijkheid alom!

Zoals boven vermeld ligt het, vermoed ik ook, aan de quotes. Je start je print("..."); en daar binnen zet je ze opnieuw, waardoor je een stukje code krijg waarvan de parser echt niet weer wat ie er mee moet:
print(" blaat"en"meer geblaat ");
Die ..."en"... wordt niet goed gezien, want hoor op deze manier eigenlijk nergens meer bij. De laatste keer dat ik probeerde kan je wel dubbele en enkele quotes mixen. Dan krijg je dus bijvoorbeeld:
print("dubbel met daarbinnen 'enkele' quotes, maar je kunt ook even".stoppen."en weer doorgaan");
succes :)

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

LauPro schreef op 28 January 2003 @ 12:42:
[...]
Ik ga niet zelf een DTD aanmaken, ik geef wel aan welke ik gebruik en ik geef ook aan welke charset ik gebuik (nog niet overal, maar bij 'nieuwe' pagina's wel). Maar om nu overal quotes te gaan plaatsen gaat mij te ver. Dan schrijven ze maar een fatsoenlijke parser die er rekening mee houd, en voor de btw: die 2 bytes maken wel degelijk uit. Je kan zo met de juiste technieken een pagina meer dan 70% verkleinen. En bovendien, waarom zou je extra informatie meegeven die de eindgebruiker toch niet ziet? Bovendien is de standaard gewoon bagger want normaal mag er dus niet een hoogte van een tabel worden aangegeven, dan moet ik dus met een div'je gaan kloten wat er allemaal veel complexer is dan gewoon height='100%'.

Overigens is xml idd wat kieskeuriger (vooral met WAP e.d.) en dat is ook de reden waarom ik alles 'xml' maak. In principe moet een 'domme' parser gewoon alle tabs e.d. terug kan zetten zonder dat hij hoeft te weten dat een br enkel element is.

En dan nog vind ik het nog gewoon echt asociaal voor mensen met een analoge verbinding om allemaal extra zooi aan quotes, 'enters' en tabs mee te zenden.
Als ik in een willekeurige programmeertaal dit doe (even PHP als voorbeeld):
PHP:
1
$foo = bar;

Dan moet de PHP parser dus ook maar snappen dat ik niet een constante genaamd 'bar' bedoel, maar dat het een string is? Kortom: de PHP parser is ook maar dom? Beetje kortzichtig hoor.
En HTML genereren zonder enters, tabs of enige andere vorm van whitespace; ik hoop niet dat je dan ooit nog eens door zo'n lap uitgepoepte HTML zut heen hoeft te lopen om een missende < of > te zoeken, onderhoudbaarheid van 0,0 als je het mij vraagt.
En height="100%" voor een tabel was inderdaad een ongelukkig voorbeeld, maar daarbij zijn tabellen ook niet bedoeld voor opmaak hoewel iedereen (zelfs ik) het daar wel voor misbruikt, vaak ook om tekortkomingen van oudere browsers op te vangen.
Met div's werken zou ik echter geen 'klooien' willen noemen want het levert gewoon een hoop extra voordelen op; ze zijn immers niet meer plaatsgebonden.
Trouwens: een opmaak met div's en goed gebruik van CSS levert meestal ook minder HTML code op :)

Ergo: wel netjes PHP coden, maar vervolgens brakke HTML produceren vind ik persoonlijk not-done...

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

@LauPro: andere browsers interesseren je zeker ook niet?
Dan schrijven ze maar een fatsoenlijke parser die er rekening mee houd
Rekening houdt met wat? Crappy code? Die houding van jou werkt juist verdere ontwikkeling van standaarden tegen :/
Bovendien is de standaard gewoon bagger want normaal mag er dus niet een hoogte van een tabel worden aangegeven, dan moet ik dus met een div'je gaan kloten wat er allemaal veel complexer is dan gewoon height='100%'.
We hebben tegenwoordig CSS hoor ;) Waarom zou je een table 100% hoog willen maken? Een table is bedoeld voor het weergeven van tabulaire data, andere elementen zijn voor je opmaak. Met CSS is al een hoop mogelijk en het wordt nog steeds verder ontwikkeld.

Jij hebt er volgens mij gewoon een leerprobleem: je wilt je niet verdiepen in hoe je fatsoenlijke code kunt schrijven en vervolgens begin je te blaten dat de standaarden bagger zijn. Verdiep je eerst eens echt, schrijf nette code en trek dan je conclusies.

:*
En dan nog vind ik het nog gewoon echt asociaal voor mensen met een analoge verbinding om allemaal extra zooi aan quotes, 'enters' en tabs mee te zenden.
en ik verzoek je nu vriendelijk doch dringend je webicon uit je profiel te verwijderen :+

sorry voor de offtopic trouwens 8)7

edit:

crisp, jij omschreef het wat duidelijker _/-\o_ en je weet wat ze zeggen... great minds... :P

[ Voor 7% gewijzigd door Verwijderd op 28-01-2003 13:12 ]


Acties:
  • 0 Henk 'm!

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 08:08

GrimaceODespair

eens een tettenman, altijd ...

Misschien nog een opmerking over het gebruik van dubbel tov enkel quotes: het schijnt weinig uit te maken voor korte strings (minder dan 256 of zo, uit de losse pols :) ). Daarover zijn op het forum ook al wat discussies geweest, maar kan ff niet aan de search. Iig: dubbele quotes zijn leesbaarder (bv: "var = $var" ipv 'var = '.$var), en daarom verkies ik ze ook voor korte strings.
edit:
Ik heb het over PHP trouwens :P

[ Voor 12% gewijzigd door GrimaceODespair op 28-01-2003 13:18 ]

Wij onderbreken deze thread voor reclame:
http://kalders.be


Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 13-09 20:47

LauPro

Prof Mierenneuke®

crisp schreef op 28 January 2003 @ 12:58:
[...]

Als ik in een willekeurige programmeertaal dit doe (even PHP als voorbeeld):
PHP:
1
$foo = bar;

Dan moet de PHP parser dus ook maar snappen dat ik niet een constante genaamd 'bar' bedoel, maar dat het een string is? Kortom: de PHP parser is ook maar dom? Beetje kortzichtig hoor.
Gaat me dan bijvoorbeeld om een programma zoals kladblok waarmee (stel dat zo'n functie erin zat) je dus 'format text' kan doen. Dan weet de parser op dat moment niet dat een br een enkel element is.
En HTML genereren zonder enters, tabs of enige andere vorm van whitespace; ik hoop niet dat je dan ooit nog eens door zo'n lap uitgepoepte HTML zut heen hoeft te lopen om een missende < of > te zoeken, onderhoudbaarheid van 0,0 als je het mij vraagt.
Dan ben jij fout bezig qua webscripten, ik heb het nu over html die vanuit PHP of via een ASP wordt aangemaakt. Je moet zorgen dat er in je code een goede structuur zit, zodat je het in je code makkelijk kan in vinden. En dat je dus ook in je code inspringt als je een tabel 'start' is dus helemaal niet zo gek.
En height="100%" voor een tabel was inderdaad een ongelukkig voorbeeld, maar daarbij zijn tabellen ook niet bedoeld voor opmaak hoewel iedereen (zelfs ik) het daar wel voor misbruikt, vaak ook om tekortkomingen van oudere browsers op te vangen.
Beetje onzinnig, ik geef aan welke DTD ik gebruik dus als de browser ouder is dan moet de gebruiker die maar is updaten, als de maximum snelheid op de snelweg wordt verhoogd naar 130 km/uur dan kan er er niet om geen om 120 te blijven rijden ipv 130 bijvoorbeeld.
Met div's werken zou ik echter geen 'klooien' willen noemen want het levert gewoon een hoop extra voordelen op; ze zijn immers niet meer plaatsgebonden.
Trouwens: een opmaak met div's en goed gebruik van CSS levert meestal ook minder HTML code op :)
(8> tabellen zijn tegenwoordig ook niet meer plaatsgebonden ;). Bovendien ga ik niet voor 1 div'je een heel style-rule aanmaken, dat is ook een vorm van bandbreedteverspilling.
Ergo: wel netjes PHP coden, maar vervolgens brakke HTML produceren vind ik persoonlijk not-done...
Wat nou brakke HTML :? Het gaat er om wat de gebruiker uiteindelijk ziet. En ik ga echt geen rekening houden met IE, dan zou ik ook niet die ' /' mee hoeven te geven... Alle tags moet je afsluiten, dus ook de br, input etc daar blijf ik bij. Bij alles wat ik doe werk ik zoals de standaard, alleen dan wel zo minimaal mogelijk. Geef mij nu is één, één reden waarom ik <input type="text" name="naam" value="waarde" /> zou gebruiken, dan mag je mij wel een verdomd goede reden geven voordat ik ik dat ga doen!

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Acties:
  • 0 Henk 'm!

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 08:08

GrimaceODespair

eens een tettenman, altijd ...

LauPro schreef op 28 januari 2003 @ 13:19:
Geef mij nu is één, één reden waarom ik <input type="text" name="naam" value="waarde" /> zou gebruiken, dan mag je mij wel een verdomd goede reden geven voordat ik ik dat ga doen!
Als je DTD XHTML aangeeft.

Wij onderbreken deze thread voor reclame:
http://kalders.be


Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 13-09 20:47

LauPro

Prof Mierenneuke®

GrimaceODespair schreef op 28 januari 2003 @ 13:37:
[...]
Als je DTD XHTML aangeeft.
Ik heb het over de quotes die dus overbodig zijn.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Acties:
  • 0 Henk 'm!

  • TA2
  • Registratie: Februari 2002
  • Laatst online: 30-09-2022

TA2

wat denk je dat er gebeurt als je
value=Dit is een test
intyped zonder " "

Acties:
  • 0 Henk 'm!

  • dreeke
  • Registratie: December 2000
  • Laatst online: 11-09 16:04

dreeke

outdated icon

LauPro maakt er dan zeker Dit_is_een_test van :+

Bij gebrek aan uw reclame staat hier mijn handtekening.


Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 13-09 20:47

LauPro

Prof Mierenneuke®

TA2 schreef op 28 January 2003 @ 13:46:
wat denk je dat er gebeurt als je
value=Dit is een test
intyped zonder " "
LauPro schreef op 28 January 2003 @ 11:43:
Ik heb ik in de code altijd dubbele quotes en voor html enkele mits ze nodig zijn.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Acties:
  • 0 Henk 'm!

  • TA2
  • Registratie: Februari 2002
  • Laatst online: 30-09-2022

TA2

Doe t dan gewoon altijd :?
Is veel netter en je weet zeker dat t werkt.

Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 13-09 20:47

LauPro

Prof Mierenneuke®

dreeke schreef op 28 January 2003 @ 13:48:
LauPro maakt er dan zeker Dit_is_een_test van :+
Mag jij mij nog is het nut uitleggen van de quotes bij <input type="submit" /> ?

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 13-09 20:47

LauPro

Prof Mierenneuke®

TA2 schreef op 28 januari 2003 @ 13:49:
Doe t dan gewoon altijd :?
Is veel netter en je weet zeker dat t werkt.
TA2, met alle respect, ik verzoek je om te lezen. Ik heb al aangegeven dat ik bij 'user-defined' velden altijd dubbele gebruik omdat het anders niet goed doorkomt. En zoals in mijn vorige post zijn er gewoon voorbeelden waarbij de quotes echt gewoon totaal overbodig zijn.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Acties:
  • 0 Henk 'm!

  • TA2
  • Registratie: Februari 2002
  • Laatst online: 30-09-2022

TA2

LauPro schreef op 28 January 2003 @ 13:51:
[...]
TA2, met alle respect, ik verzoek je om te lezen. Ik heb al aangegeven dat ik bij 'user-defined' velden altijd dubbele gebruik omdat het anders niet goed doorkomt. En zoals in mijn vorige post zijn er gewoon voorbeelden waarbij de quotes echt gewoon totaal overbodig zijn.
Dat zeg ik, mischien overbodig maar t staat gewoon veel netter.
Gestructureerd werken is het belangrijkste dat er is (en zorgen dat t werkt natuurlijk).
Je zet toch ook <HTML><TABLE><TR><TD>Text</TD></TR></TABLE><B>Nog een text</B></HTML>
niet achter elkaar :? omdat t overbodig is om alles netjes onder elkaar te zetten.

Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 13-09 20:47

LauPro

Prof Mierenneuke®

TA2 schreef op 28 January 2003 @ 13:57:
[...]


Dat zeg ik, mischien overbodig maar t staat gewoon veel netter.
Gestructureerd werken is het belangrijkste dat er is (en zorgen dat t werkt natuurlijk).
Je zet toch ook <HTML><TABLE><TR><TD>Text</TD></TR></TABLE><B>Nog een text</B></HTML>
niet achter elkaar :? omdat t overbodig is om alles netjes onder elkaar te zetten.
1) Ik ga niet schreeuwen in mijn html-broncode
2) Wat heeft de eindgebruiker met de html-broncode te maken?
3) En ja die zet ik achter elkaar, http://laupro.nl bekijk daar de broncode maar is van.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Acties:
  • 0 Henk 'm!

  • TA2
  • Registratie: Februari 2002
  • Laatst online: 30-09-2022

TA2

Ja, als je voor jezelf werkt maakt t niet zoveel uit.
Als werk leer je wel anders, voor collega's werkt t namelijk 100 keer makkelijker als
er dingen aangepast of op gezocht moeten worden.
Als jij nu iets in je source moet aanpassen ben je eerst een half uur aan't zoeken.
Maar iedereen heeft zo z'n eigen werk wijze, dus .. suc6.

Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
LauPro schreef op 28 januari 2003 @ 14:05:
1) Ik ga niet schreeuwen in mijn html-broncode
Ziet de gebruiker toch niet joh....
2) Wat heeft de eindgebruiker met de html-broncode te maken?
Wat heeft een gebruiker met een developer te maken?
Zullen we dan maar alles wat te maken heeft met 'mooie cleane' code afschaffen? Want dat ziet de gebruiker toch niet. OO is ook maar overdone, ziet de gebruiker toch niet? ;) </overTheTop>

En waarom verwacht een parser quotes? Ooit gewerkt met grammatica's en ooit gezien hoe complex die kunnen worden. Je moet juist precies specificeren wat allemaal mag, om ambïguiteiten te voorkomen bij het parsen. Door het verplichten van quotes om attributen laat je een gebruiker expliciet aangeven wat een attribuut is, zodat daar geen verwarring door kan ontstaan.
Impliciete declaraties zijn alleen toegestaan als er _100%_ geen verwarring over kan ontstaan. U geeft zelf al aan dat er moment zijn dat het wel zo kan zijn (spaces) dus is het veel beter om daar te verplichten dat er een expliciete declaratie moet zijn.

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 17:52
Erm, even voor de duidelijkheid: quotes in attribuutwaarden van HTML tags zijn in de HTML standaard NIET verplicht, zoals LauPro terecht opmerkt, mits ze alleen uit alfanumerieke karakters bestaan (en misschien nog wat underscores enzo, pin me er niet op vast). Het lijkt me dat hij zelf wel mag bepalen wat 'ie netjes vind of niet, zolang 'ie er geldige HTML code mee produceert.

Behalve dat dit onderwerp off topic is, leidt het ook nog nergens toe. Misschien zouden jullie het in W&G kunnen voortzetten?

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 17:52
Glimi schreef op 28 January 2003 @ 14:13:
En waarom verwacht een parser quotes? Ooit gewerkt met grammatica's en ooit gezien hoe complex die kunnen worden. Je moet juist precies specificeren wat allemaal mag, om ambïguiteiten te voorkomen bij het parsen. Door het verplichten van quotes om attributen laat je een gebruiker expliciet aangeven wat een attribuut is, zodat daar geen verwarring door kan ontstaan.

Impliciete declaraties zijn alleen toegestaan als er _100%_ geen verwarring over kan ontstaan. U geeft zelf al aan dat er moment zijn dat het wel zo kan zijn (spaces) dus is het veel beter om daar te verplichten dat er een expliciete declaratie moet zijn.
Dit is grote onzin. Er bestaat een HTML specificatie en die zegt dat die quotes bij sommige attribuutwaarden niet nodig zijn. Dan kan jij het nog zo mooi vinden om ze er toch bij te zetten (wat OOK mag trouwens), maar jouw HTML code wordt daar geen haar beter van.

Wellicht heb je gelijk dat het "veel beter" zou zijn geweest als ze bij het opstellen van de specificatie die quotes hadden verplicht, maar zo is de standaard nu eenmaal niet geworden. Hoe kom je op het idee om iemand de oren te wassen die gewoon een standaard volgt, met als argument dat jij persoonlijk vind dat de standaard veel beter zus-of-zo in elkaar had kunnen zitten? Op die manier is het einde zoek.

Iedereen is het met je eens dat quotes duidelijker zijn, maar als LauPro het te veel moeite vind om ze neer te zetten en (terecht) opmerkt dat de gebruiker niets met zijn HTML code te maken heeft zolang die geldig is, dan is dat zijn keuze. Klaar uit. Als jij graag toch quotes er bij wil zetten, of je tags op aparte regels wil zetten, of je tags wil indenten, of commentaar tussen je code te zetten, enzovoorts, dan is dat je ook toegestaan. Ga ik toch ook niet over zeuren?

Acties:
  • 0 Henk 'm!

Verwijderd


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 17:52
Ik zie nergens foutmeldingen met betrekking tot het niet-quoten van attribuutwaarden hoor?

Acties:
  • 0 Henk 'm!

Verwijderd

nope, you're right...

bij deze standaard niet..., bij xhtml is het zeker wel verplicht

daarnaast maak je het een robot die zoekt makkelijker als je fatsoenlijk quote...

ach, genoeg geblaat, maar weer eens aan t werk :)

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Even voor de volledigheid en dan hou ik er ook over op :)

http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.2.2

Soultaker heeft gelijk; het is niet verplicht in sommige gevallen om attributen tussen quotes te zetten, het is echter wel aangeraden.
Waarom is het aan te raden? 1 woord: consistentie
Iemand die niet consistent te werk gaat in deze zal naar mijn mening ook inconsistent zijn in andere zaken. Ik ben liever wel consistent en probeer ook mooi opgemaakte HTML te produceren, al is het alleen maar voor mezelf :)
Soultaker schreef op 28 January 2003 @ 14:50:
[...]

Ik zie nergens foutmeldingen met betrekking tot het niet-quoten van attribuutwaarden hoor?
Nee, maar wel bijvoorbeeld een foutmelding op een </td></td> :X

[ Voor 21% gewijzigd door crisp op 28-01-2003 15:00 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 17:52
Verwijderd schreef op 28 januari 2003 @ 14:52:
bij deze standaard niet..., bij xhtml is het zeker wel verplicht
Dat is niets nieuws. Er is dan ook een goede reden dat dit <b>HTML</b> is en geen <b>XHTML</b>. Dit is ook een ongeldig GIF bestand, of een ongeldige Windows executable, maar daar het allemaal niet om: het is geldige HTML.
crisp schreef op 28 januari 2003 @ 14:57:
Waarom is het aan te raden? 1 woord: consistentie

Iemand die niet consistent te werk gaat in deze zal naar mijn mening ook inconsistent zijn in andere zaken. Ik ben liever wel consistent en probeer ook mooi opgemaakte HTML te produceren, al is het alleen maar voor mezelf :)
Ik heb zijn code niet doorgespit, maar volgens mij zei LauPro dat hij uitsluitend quotes gebruikt wanneer dat nodig is. Dat is dus consequent. Het zou inconsequent zijn wanneer hij dezelfde waarde de ene keer wel en de andere keer niet zou quoten. Dee meste 'standaard' waarden, zoals type=submit op een input-tag, of size=10 op een font-tag, kunnen prima consequent zonder quotes geschreven worden.
Nee, maar wel bijvoorbeeld een foutmelding op een </td></td> :X
Ook daar ging het niet over... Ik heb nooit gezegd dat LauPro's code perfect was, (dat zou ik eerlijk gezegd niet weten), alleen dat hij gelijk heeft als hij zegt dat niets hem ertoe verplicht alle attribuutwaarden te quoten.

[ Voor 4% gewijzigd door Soultaker op 28-01-2003 15:35 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Zullen we hier ff geen /13 discussie gaan houden?

FlowDesign:
Voortaan lekker even in de manual kijken bij printf(), 't staat er echt in...

Verder kun je, als je toch printf wilt gebruiken, beter enkele quotes gebruiken, hoef je die dubbele quotes niet de hele tijd te escapen:

code:
1
printf ( '<img src="%s">', $img_src );

Scheelt weer.

tot slot: heren BrZ en dreeke, valt me tegen dat ik tegen jullie moet zeggen dat je replies als

[rml]dreeke in "[ PHP] probleem met %-teken"[/rml]
[rml]dreeke in "[ PHP] probleem met %-teken"[/rml]
[rml]BrZ in "[ PHP] probleem met %-teken"[/rml]
[rml]dreeke in "[ PHP] probleem met %-teken"[/rml]

wel achterwege mag laten in een Tech-forum als P&W :/

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1

Dit topic is gesloten.