/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Escaping i ' ' apastroffer
Fra : Thomas Schulz


Dato : 27-06-02 20:25

Min PHP melder fejl ved den her:
<?
echo 'hello\';
?>


Men ikke ved:
<?
echo 'hello';
echo 'hello\\';
?>


Jeg mente da at escaping kun duede og var parset ved " ".
Jeg går ud fra, at det er min hjerne der lige er stået af (hoppet af båden),
men den her adfærd er da i strid med den dokumenterede?!?
Jeg har PHP 4.2.0.


mvh
Thomas









 
 
Niels Andersen (27-06-2002)
Kommentar
Fra : Niels Andersen


Dato : 27-06-02 20:44

Thomas Schulz wrote in <3d1b6660$0$1572$edfadb0f@dspool01.news.tele.dk>:
[fejl]
> echo 'hello\';

[ikke fejl]
> echo 'hello';
> echo 'hello\\';

> Jeg mente da at escaping kun duede og var parset ved " ".

Med single quotes er der en lille smule, som kan escapes. Så vidt jeg
husker er det "'" og "\". Og det giver jo egentlig også mening, synes du
ikke? :)

> Jeg går ud fra, at det er min hjerne der lige er stået af (hoppet af
> båden), men den her adfærd er da i strid med den dokumenterede?!?

Næh, ikek så vidt jeg husker. Hvor ser du det henne?

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Niels Andersen (27-06-2002)
Kommentar
Fra : Niels Andersen


Dato : 27-06-02 20:49

Niels Andersen wrote in <uWJS8.87565$N46.2419974@news010.worldonline.dk>:
>> Jeg mente da at escaping kun duede og var parset ved " ".
>> Jeg går ud fra, at det er min hjerne der lige er stået af (hoppet af
>> båden), men den her adfærd er da i strid med den dokumenterede?!?
>
> Næh, ikek så vidt jeg husker. Hvor ser du det henne?

OK da, jeg fandt lige det sted, jeg selv tænkte på:

http://www.php.net/manual/en/language.types.string.php

"Single quoted

The easiest way to specify a simple string is to enclose it in single
quotes (the character ').

To specify a literal single quote, you will need to escape it with a
backslash (\), like in many other languages. If a backslash needs to occur
before a single quote or at the end of the string, you need to double it.
Note that if you try to escape any other character, the backslash too will
be printed! So usually there is no need to escape the backslash itself."

Nu jeg alligevel skriver igen, så kan jeg lige nævne noget jeg glemte før,
men blev mindet om mens jeg slog det med escaping op...
Alle de escapes der er med double quotes gælder også i heredoc syntaxen.
Jeg ved ikke om du tænkte på alle tre metoder da du sagde "kun", men jeg
tror dog du kun tænkte på de første to. :)

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Henrik Hansen (27-06-2002)
Kommentar
Fra : Henrik Hansen


Dato : 27-06-02 21:01

"Thomas Schulz" <dk_sz@hotmail.com> wrote:

> Min PHP melder fejl ved den her:
> <?
> echo 'hello\';
> ?>
>
>
> Men ikke ved:
> <?
> echo 'hello';
> echo 'hello\\';
> ?>
>
>
> Jeg mente da at escaping kun duede og var parset ved " ".

nope \ vil også escape '

--
Henrik Hansen

Thomas Schulz (28-06-2002)
Kommentar
Fra : Thomas Schulz


Dato : 28-06-02 10:26

> Jeg mente da at escaping kun duede og var parset ved " ".

Tak til jer begge for jeres forklaringer.

mvh.
Thomas



Tinky Winky (28-06-2002)
Kommentar
Fra : Tinky Winky


Dato : 28-06-02 10:47

> Min PHP melder fejl ved den her:
> <?
> echo 'hello\';
> ?>

Det er klart. Den første quote bliver fortolket som starten på en streng.
Til sidst escaper du så for at printe en apostrof. Så mangler der en
afsluttende quote.
echo 'hello\'';
ville skrive: hello'

> Men ikke ved:
> echo 'hello';
Den er OK, åbenlyst

> echo 'hello\\';
skriver: hello\
der escapes for at printe backslash



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408952
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste