Wat is het nut van \" in PHP?

Ik ben de code van mijn site een beetje aan het opschonen omdat deze inmiddels verzuipt in de function-calls en includes, ben zelf het overzicht helemaal kwijt... wat ik me ineens af begon te vragen; wat is het nu om alle HTML code binnen een PHP deel te "formatten" volgens de \" manier, terwijl een ' het net zo goed doet?

Voorbeeld; naar een voorbeeld van andere PHP codes had ik bijvoorbeeld dit soort regels in PHP staan om HTML output te geven:

[code:1:6de13ce1ef]echo "<table width="95%" border="0" cellspacing="1" cellpadding="0" bgcolor="$bgcolor" align="center">[/code:1:6de13ce1ef]

Terwijl dit net zo goed werkt:

[code:1:6de13ce1ef]echo "<table width=‘95%’ border=‘0’ cellspacing=‘1’ cellpadding=‘0’ bgcolor=’$bgcolor’ align=‘center’>[/code:1:6de13ce1ef]

Dit laatste is m.i. een stuk duidelijker. Ik heb middels een “search & replace” al een aantal documenten zo aangepast en alles werkt nog zoals voorheen.

Voordat ik mijn hele site op deze manier bij ga werken hoor ik echter eerst graag nog even wat reakties van jullie kant, wellicht zie ik iets belangrijks over het hoofd…

lijkt mij helemaal niks mis mee... ik zie in ieder geval geen nadeel... iemand wel?

iRuben,

laat je gaan! de backslashes unescapen (van “to unescape”) de quotes, maar single quotes werken even goed en lezen inderdaad een pak makkelijker. voor zover ik weet (ik gebruik dezelfde methode altijd in actionscript, en m’n buddy naast me altijd in php) heb je daar nergens problemen mee. :slight_smile:

ps: de zon schijnt!
groets
tost

Bedankt voor de reakties. Ik heb even een backup gemaakt van mijn site en ga nu een "search & replace" doen om ALLE \" te veranderen in ', ben benieuwd.

Er MOET toch ergens een addertje onder het gras zitten volgens mij, want alle “officiële” PHP pakketten houden altijd vast aan het " formaat, maar we zullen zien… :stuck_out_tongue:

het is zo dat de meeste browsers ' ook accepteren, maar niet allemaal! welke weet ik ook niet, je pagina's zullen iig niet meer W3C goed gekeurd worden.

[quote:3ed0433da3="Zout"]...je pagina's zullen iig niet meer W3C goed gekeurd worden.[/quote:3ed0433da3]

Boeien… ken dat hele W3C niet en die hebben ook niets te zoeken op mijn site. :stuck_out_tongue: In Safari ziet het er goed uit, zal eens wat andere browsers gaan proberen.

Okee, ik heb mijn site zitten testen met 11 verschillende browser, te weten:[list:36ed70523a][*:36ed70523a]Camino[*:36ed70523a]iCab[*:36ed70523a]Internet Explorer[*:36ed70523a]WebDesktop[*:36ed70523a]Mozilla[*:36ed70523a]Mozilla Firebird[*:36ed70523a]Netscape[*:36ed70523a]OmniWeb[*:36ed70523a]Opera[*:36ed70523a]Safari[*:36ed70523a]WamCom[/list:u:36ed70523a]Behalve dat OmniWeb en Opera echt om te huilen waren zo kut als deze functioneren, was er echter geen enkele browser die moeite had met het feit dat ik in PHP nu alles vervangen heb door ' in plaats van \". Daarmee lijkt het dus (in elk geval in mijn geval) geen enkel probleem van de "standaard" af te wijken. De browsers die er voor mij persoonlijk als besten uitkwamen waren Safari, Camino en Internet Explorer, maar deze laatste gebruik ik gewoon uit principe al niet. :-P

ik moet bekennen dat ik het W3C tot voor kort ook niet kende, maar dat is de organisatie die schijnbaar de internet standaarden ontwikkeld. Zij zorgen er voor dat een standaard ook echt een standaard wordt. mijn site wordt ook niet goed gekeurt, wist je dat je de bgcolor niet mag gebruiken, je moet alles met CSS doen volgens hun! Daar valt wat voor te zeggen, maar of je als ontwikkelaar dan nog lekker kunt werken.... volgens mij accepteren WAP browsers de ' ipv " niet, maar dat is ook maar iets wat ik me heb laten vertellen :lol:

[quote:3c4051a2a5="Zout"]...maar dat is de organisatie die schijnbaar de internet standaarden ontwikkeld. Zij zorgen er voor dat een standaard ook echt een standaard wordt...[/quote:3c4051a2a5]

Aha, zou wel prettig zijn, maar wat heb je er aan als “grote jongens” als Micro$oft toch overal schijt aan hebben en zich er ook niet aan houden? Laten we eerlijk wezen, ik ben absoluut geen Micro$oft fan, maar het is wel de meest gebruikte browser ter wereld…

Trouwens wel geinig dat keuren, ik ga er bij mijn site meteen even een button op zetten dat ik NIET “approved” ben door die zeikerts. :stuck_out_tongue:

[quote:3b1fda45d4="iRuben"]Trouwens wel geinig dat keuren, ik ga er bij mijn site meteen even een button op zetten dat ik NIET "approved" ben door die zeikerts. :-P[/quote:3b1fda45d4]

Hahaha! :mrgreen: En terecht! Een APK keuring voor een website? [i:3b1fda45d4]Nou meneer uw site is wel toe aan nieuwe ruitewissers![/i:3b1fda45d4] :x

:wink:

In php kun je beter de ' gebruiken ipv de ".

Dit omdat alle variabelen die tussen " staan langer nodig hebben om te verwerken. Bij " zoekt php namelijk naar andere variabelen in de variabele. Bij ’ moet je ze zelf aangeven:

$mijnVar = “Mijn naam is $naam”;
of:
$mijnVar = 'Mijn naam is '.$naam;

De tweede is duidelijker, omdat je in een keer ziet wat variabelen zijn etc. en het werkt sneller. Niet dat je daar nou zoveel van merkt in een klein projectje, maar toch. Het word ook door PHP aangeraden dacht ik om variabelen in ’ te stoppen.

Leg ik het zo een beetje goed uit :?

[quote:381fe6d70e="iRuben"] [code:1:381fe6d70e]echo "<table width="95%" border="0" cellspacing="1" cellpadding="0" bgcolor="$bgcolor" align="center">[/code:1:381fe6d70e]

Terwijl dit net zo goed werkt:

[code:1:381fe6d70e]echo "<table width=‘95%’ border=‘0’ cellspacing=‘1’ cellpadding=‘0’ bgcolor=’$bgcolor’ align=‘center’>[/code:1:381fe6d70e]
[/quote:381fe6d70e]

Ga maar eens javasrcipt dynamisch genereren met php :slight_smile: dan vind je het nut zo wel :smiley:

\" is de html standaard, ' is dat niet.

Veel browsers geven het wellicht correct weer maar het is toch beter je aan de standaard te houden.

Hoevaak klagen wij niet over allerlei sites die zich niet aan open web standaards houden en dus vanaf onze macs niet te lezen zijn?

Jan

[quote:97f52c202a="Elger"]Ga maar eens javasrcipt dynamisch genereren met php :) dan vind je het nut zo wel :D[/quote:97f52c202a]

Daar was ik inderdaad al achter gekomen. Gelukkig gebruik ik alleen een aantal vaste Java scriptjes, dus die veranderen niet en zet ik er gewoon met een include tussen, werkt net zo goed. :slight_smile:

Je niet houden aan de (X)HTML specificaties is net zo kortzichtig als alleen voor Internet Explorer ontwikkelen. Someday, somehow, somewhere wordt je geconfronteerd met feit dat een groep gebruikers niet meer met je site kunnen werken omdat ze over de ' in plaats van de " struikelen (bijvoorbeeld: de volgende versie van windows blijkt ineens een super standaard vriendelijke browser geincorpeerd te hebben) en dan moet je of ineens alles aanpassen, of je bent gedwonen een tweede versie van je site te onderhouden etc.

Kortom, je bent weer terug in dezelfde sh*t als tijden de IE4 en Netscape4 periode.

Als je enigzins volgt wat er gebeurt dan zijn er steeds meer grote commerciele websites converteren naar de standaarden. In de eerste plaats omdat hun websites veel beter onderhoudbaar worden (dus minder mankracht, dus minder centjes) en in de tweede plaats omdat pagina’s met CSS en XHTML1 vaak veel kleiner zijn en met de miljoenen hits die bijvoorbeeld een ESPN.com krijgt scheelt dat belachelijk veel bandbreedte en dus heel erg veel centjes.

Bijkomend voordeel is dat elke gebruiker in elke browser (van Lynx tot Mozilla Firebird) de website kan benaderen en de inhoud kan lezen. En dat je automatisch forward compatible bent, want nieuwe browsers (ook op handhelds) houden zich vaak goed aan de gedefinieerde standaarden (zelfs microsoft).

Zo stom zijn die standaarden dus nog niet. (btw. Zowel Microsoft als Apple zijn vertegenwoordigd in W3C dat de standaarden definieert en onderhoudt…)

[quote:95f178d3cb="tennapel"] Je niet houden aan de (X)HTML specificaties is net zo kortzichtig als alleen voor Internet Explorer ontwikkelen. Someday, somehow, somewhere wordt je geconfronteerd met feit dat een groep gebruikers niet meer met je site kunnen werken omdat ze over de ' in plaats van de " struikelen.[/quote:95f178d3cb]

Whuaah… Nee, onzin, want: een browser moet gewoon fout tolerant zijn waardoor er makkelijker ontwikkeld kan worden door webpro’s en webprutsers. Tegenwoordig maakt het echt niets uit of je nu " of ’ gebruikt in je tags, waarom zou dat eigenlijk moeten uitmaken? Aangezien we niet achteruitgaan in de tijd hoeven we geen rekening meer te houden tussen " of ’ (alleen in scripting, maar niet in HTML).

Houdt er ook rekening mee dat het in PHP stukken makkelijker is om ’ te tikken in plaats van continu " Hierdoor krijg je namelijk dingen als dit:

[code:1:95f178d3cb]print "<a href="".$url."" alt="".$alt."">".$name."</a>";[/code:1:95f178d3cb]
in plaats van

[code:1:95f178d3cb]print “<a href=’”.$url."’ alt=’".$alt."’>".$name."</a>";[/code:1:95f178d3cb]

De keuze is dus snel gemaakt als het gaat om leesbaarheid.

By the way:
Bij mswindows moet je (default) na een " of een ’ eerst een spatie tikken, hoe frustrerend. :mrgreen:

[quote:61db5b99ed="Elger"]onzin, want: een browser moet gewoon fout tolerant zijn waardoor er makkelijker ontwikkeld kan worden door webpro's en webprutsers.[/quote:61db5b99ed]

Ik ben het er niet mee eens, maar goed… dan kan je het nog korter maken:

[code:1:61db5b99ed]print “<a href=’$url’ alt=’$alt’>$name.</a>”;[/code:1:61db5b99ed]

[quote:3c5a24e785="PeterMeeuwsen"][quote:3c5a24e785="Elger"]onzin, want: een browser moet gewoon fout tolerant zijn waardoor er makkelijker ontwikkeld kan worden door webpro's en webprutsers.[/quote:3c5a24e785]

Ik ben het er niet mee eens, maar goed… dan kan je het nog korter maken:

[code:1:3c5a24e785]print “<a href=’$url’ alt=’$alt’>$name.</a>”;[/code:1:3c5a24e785][/quote:3c5a24e785]

eehm, nu ga je met je php letterlijk een link maken naar $url en heet de link $name…
<a href=’$url’ alt=’$alt’>$name</a>

Het was de bedoeling dat er variabelen afgedrukt worden die dus een andere waarde hebben:

[code:1:3c5a24e785]
$url = "http://www.macosx.nl";
$name = "MacOSX.nl";
$alt = "Apple nieuws met een smaakje";
[/code:1:3c5a24e785]

<a href=‘http://www.macosx.nl’ alt=‘Apple nieuws met een smaakje’>MacOSX.nl</a>

Korter gaat dus niet, tenzij je Echo gebruikt.

Maargoed, daar gaat het nu niet om.
Ik denk dat wanneer er een browser komt die niet tolerant is er een hele boel mensen over de zeik gaan :smiley: Ik ben beniewd OF dit komt, het lijkt me eigenlijk wel grappig. (ik ga dan wel ff 10 minuten find & replace doen ;))

[quote:88c8b2e922="Elger"]eehm, nu ga je met je php letterlijk een link maken naar $url en heet de link $name... <a href='$url' alt='$alt'>$name</a>[/quote:88c8b2e922]

Dat doe jij nu ook…

[quote:88c8b2e922=“Elger”]Het was de bedoeling dat er variabelen afgedrukt worden die dus een andere waarde hebben: <a href=‘http://www.macosx.nl’ alt=‘Apple nieuws met een smaakje’>MacOSX.nl</a>[/quote:88c8b2e922]

Dan moet je < vervangen door &lt; en > vervangen door &gt;

[quote:87206778d8]Ik denk dat wanneer er een browser komt die niet tolerant is er een hele boel mensen over de zeik gaan Ik ben beniewd OF dit komt, het lijkt me eigenlijk wel grappig. (ik ga dan wel ff 10 minuten find & replace doen )[/quote:87206778d8]

Waarom moet een browser tolerant zijn en een parser van de gemiddelde programmeertaal niet? Waarom zijn SGML en XML generatoren ontzettend intolerant en waarom zou HTML wel ruimte voor fouten moeten laten?

HTMl is geen programmeertaal, maar een mark-up taal; dat weet ik ook wel, maar een hoop ellende met incompatibele websites, banken die eisen dat je IE op een Windows machine gebruikt etc wordt dus veroorzaakt door het feit dat browsers foutgevoelig zijn en omdat de interpretatie van HTML door verschillende browsers ook anders is (m.a.w. niet altijd even duidelijke specs).

En wat is dan een fout en welke fouten tolereer je dan wel en welke niet? En wie beslist dat?

Misschien is het houden aan een afgesproken standaard wel zo overzichtelijk, of niet?