phpbar.de logo

Mailinglisten-Archive

[php] leerzeichen nicht gleich leerzeichen?

[php] leerzeichen nicht gleich leerzeichen?

Andreas Heigl a.heigl at wdv.de
Fre Jan 13 14:41:36 CET 2006


Michael Borchers schrieb:

> so etwas is mir noch nicht untergekommen.
> ich erzeuge mit php einen link zum include.
> an einer stelle erscheint dann durch
> ... " . \$_GET[\'x'] . " ...
> 
> der link als ausgabe, also:
> 
> ... " . $GET['x'] . " ...
> 
> nun kopiere ich diesen link in meinen editor und include ihn.
> angeblich ein parse error.
> allerdings habe ich einen älteren link nach der gleichen methode erzeugt und
> dort bereits stehen.
> es besteht KEIN unterschied.
> 
> nun denke mal etwas um die ecke und entferne per hand alle leerzeichen vor und
> hinter den punkten.
> der parse error ist weg.
> nun füge ich per hand alle leerzeichen wieder ein,
> so wie es vorher alles war, und? kein parse error mehr.
> 
> füge ich den link wie er generiert wurde wieder ein,
> sieht er wieder völlig identisch aus, aber die leerzeichen erzeugen wieder den
> parse error.
> 
> wie kann sowas sein?
Es gibt einen Unterschied zwischen einem Geschützten Leerzeichen ( )
und einem 'einfachen' Leerzeichen.

Ein geschütztes Leerzeichen wird auf jeden fall dargestellt, selbst wenn 10
hintereinander dastehen.
In HTML (und anderen Layout'sprachen') werden dagegen mehrere hintereinander
stehende Leerzeichen auf eines verkürzt.

Daher gibt es einen Unterschied zwischen einem '&nbsp' und einem ' '.
Und der ASCII-Code eines geschützten Leerzeichens ist für den PHP-Parser
eben unbekannt und verursacht einen Parser-Fehler.

Grundsätzlich solltest du auch folgendes ausgeben können:
> ... " . \$_GET[\'x'] . " ...
------------^-^------------^-^

Das sollte im Browser dann genauso aussehen.

HTH

Grüße

Andreas
-- 

Andreas Heigl
Siemensstrasse 6
61352 Bad Homburg
Germany
Telefon +49-(0)6172-670-185
Telefax +49-(0)6172-670-181



php::bar PHP Wiki   -   Listenarchive