[HTML / PHP] Enkele of dubbele aanhalingstekens?

Pagina: 1
Acties:
  • 766 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Dr.Bob
  • Registratie: November 1999
  • Laatst online: 16-01-2024

Dr.Bob

Dr.Bob says: HEAL!

Topicstarter
Hi all,
als ik een stuk HTML binnen PHP echo, en ik gebruik enkele aanhaningstekens in de HTML tags, dan is dat lekker makkelijk, want dan hoef ik niet te escapen.

En het werkt.

Maar waarom doet mijn editors STANDAARD alles met dubbele aanhanlingstekens, en zie ik op het W3C in een QuickTutorial ook alleen het gebruik van dubbele?

Is enkele toch beetje fout ofzo?


Senx,
Dr.B
(ps: Sebastard: Gefeliciteerd!! :) )

NERDCORE FOR LIFE


Acties:
  • 0 Henk 'm!

Anoniem: 26306

Ik zou enkele in PHP gebruiken, of je kunt gewoon overal dubbele aanhalingstekens gebruiken, maar dan moet je de aanhalingstekens die in je html komen wel escapen. \" dus.
Maar wel goed opletten !!!

Voorbeeld:
PHP:
1
2
3
<?
echo("[img]\"image.gif\">")
?[/img]

Acties:
  • 0 Henk 'm!

Anoniem: 35113

Op woensdag 10 oktober 2001 16:18 schreef Dr.Bob het volgende:
Hi all,
als ik een stuk HTML binnen PHP echo, en ik gebruik enkele aanhaningstekens in de HTML tags, dan is dat lekker makkelijk, want dan hoef ik niet te escapen.

En het werkt.

Maar waarom doet mijn editors STANDAARD alles met dubbele aanhanlingstekens, en zie ik op het W3C in een QuickTutorial ook alleen het gebruik van dubbele?

Is enkele toch beetje fout ofzo?


Senx,
Dr.B
(ps: Sebastard: Gefeliciteerd!! :) )
Naar mijn weten mag het allebei. Je mag ze zelfs weglaten in sommige gevallen. Deze zijn allemaal juist:

<Table height=100 width=10>
<Table height='100' width='10'>
<Table height="100" width="10">

Alleen de laatste in algemener en in ook de standaard, omdat het door alle browsers herkent wordt, dus als je rekening wilt houden met hele oude browsers, zijn enkele aanhalingstekens fout.

Acties:
  • 0 Henk 'm!

  • TheMrH
  • Registratie: April 2000
  • Laatst online: 06-07 09:30
Zelf doe ik het altijd zo:
PHP:
1
2
3
<?
echo '<td colspan="2">'.$variable.'</td>';
?>

Dus beginnen met een enkele, dubbele in je HTML ebruiken, en je variabelen buiten de string houden. Zo kan ik precies zien waar een variabele gebruikt wordt. Ik zet een variabele dus nooit in een string met dubbele quotes.

Ik maak hier een uitzondering op: SQL query's. Daar doe ik de " en de ' net andersom. Dus:
PHP:
1
2
3
<?
$sql = "select kolom1, kolom5 from tabel3 where city = '".$city."'";
?>

Dit omdat er in standaard SQL enkele quotes gebruikt worden.

Nog een uitzondering: als ik JavaScript code schrijf kijk ik hoe het het beste uitkomt. Het wordt nogal onoverzichtelijk om alle escapes te escapen :)

The box said 'requires Windows 95 or better', so I installed Linux...


Acties:
  • 0 Henk 'm!

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 23-06 23:17
Ik ga er dus vanuit dat je deze vraag in het verkeerde forum hebt geplaatst ( dit forum was beter geweest )en dus de aanhalingstekens voor een HTML attribuutwaarde bedoeld.

Volgens de HTML standaard van de W3C altijd aanwezig behoren te zijn behalve als de attribuutwaarde alleen maar uit cijfers bestaat, bij twijfel moeten er dubbele aanhalingstekens worden gebruikt:
code:
1
2
3
4
5
<html>
<body>
[img]"http://www.tweakers.net/g/s/smile.gif"[/img]
</body>
</html>

Nu komen we dus bij de link met /14 en het phpgedeelte van je vraag (voor zover hier sprake van was):

Om deze dingen te echo'en heb je deze mogelijkheden, stellend dat je $url de variabele is en we uitgaan van bovengenoemd voorbeeld ( $url = 'http://www.tweakers.net/g/s/smile.gif' ):

Simpele syntax:
code:
1
2
3
4
5
<html>
<body>
[img]"<?=$url?>"[/img]
</body>
</html>

Enkele aanhalingstekens:
PHP:
1
2
3
4
5
6
7
<?
<html>
<body>
echo '[img]"'[/img]';
</body>
</html>
?>

Dubbele aanhalingstekens:
PHP:
1
2
3
4
5
6
7
<?
<html>
<body>
echo "[img]\"$url\"[/img]";
</body>
</html>
?>

Here doc syntax:
PHP:
1
2
3
4
5
6
7
8
9
<?
echo <<<HTM
<html>
<body>
[img]"$url"[/img]
</body>
</html>
HTM;
?>

Als je hier vragen over hebt zeg je het maar... :)

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Meestal pak ik de Heredoc syntax.

Maar als ik variabelen in strings wil verwerken doe ik dat vrijwel altijd zo: (als ik dus geen heredoc gebruik)
PHP:
1
2
3
<?
echo "< a href='$url'>blaat</a>";
?>

Als iets je code onduidelijk maakt, vind ik wel dat dat die escaped \" dingen zijn...

Btw, zowel double als single quotes mogen (uit de html 4.01 specs):
By default, SGML requires that all attribute values be delimited using either double quotation marks (ASCII decimal 34) or single quotation marks (ASCII decimal 39). Single quote marks can be included within the attribute value when the value is delimited by double quote marks, and vice versa. Authors may also use numeric character references to represent double quotes (") and single quotes ('). For double quotes authors can also use the character entity reference ".

Acties:
  • 0 Henk 'm!

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 23-06 23:17
Op woensdag 10 oktober 2001 16:55 schreef ACM het volgende:
Meestal pak ik de Heredoc syntax.
Vollegens mij heeft hij het over dit:
code:
1
2
3
4
5
6
7
8
dit---------+-------\
        |    |
        v    v
<body color="#FFEE11">
[img]"http://www.tweakers.net/g/s/smile.gif"[/img]
       ^                         ^              ^   ^
       |                         |              |   |
en dit---+-------------------------------------+------------------------+------/

Ps. phj34r my l33t ascii art.. :P
Pagina: 1