Re: Backslash confusion

Re: Backslash confusion

am 16.04.2008 09:43:37 von freelance71

"Erwin Moller"
wrote in
message news:4805abe9$0$14343$e4fe514c@news.xs4all.nl...
> freelance71 schreef:
>> I have to pass the string '\abcd' to a function. Ofcourse one (or two)
>> extra '\' is needed to escape but experimenting with it shows that I have
>> to pass three extra backslashes to make it work.
>>
>>
>>
>>
>> /* this function is in another file */
>>
>> function displayLatex(q) {
>>
>>
>> alert(q); /* this shows \abcd when called by above script*/
>>
>> }
>>
>>
>> Can anyone explain why this is so? why 4 backslashes?
>
> I do not understand.
> Your script alerts \\abcd over here (on FF), as expected.
> There must be more to it than you describe.
>
> Regards,
> Erwin Moller


can it be because I'm using it in a PHP file like this?


echo <<< HTMLOUT



HTMLOUT;

?>

Re: Backslash confusion

am 16.04.2008 10:27:09 von Erwin Moller

freelance71 schreef:
> "Erwin Moller"
> wrote in
> message news:4805abe9$0$14343$e4fe514c@news.xs4all.nl...
>> freelance71 schreef:
>>> I have to pass the string '\abcd' to a function. Ofcourse one (or two)
>>> extra '\' is needed to escape but experimenting with it shows that I have
>>> to pass three extra backslashes to make it work.
>>>
>>>
>>>
>>>
>>> /* this function is in another file */
>>>
>>> function displayLatex(q) {
>>>
>>>
>>> alert(q); /* this shows \abcd when called by above script*/
>>>
>>> }
>>>
>>>
>>> Can anyone explain why this is so? why 4 backslashes?
>> I do not understand.
>> Your script alerts \\abcd over here (on FF), as expected.
>> There must be more to it than you describe.
>>
>> Regards,
>> Erwin Moller
>
>
> can it be because I'm using it in a PHP file like this?

Yes. That is the reason.

>
> >
> echo <<< HTMLOUT
>
>
>
> HTMLOUT;
>
> ?>
>
>

Re: Backslash confusion

am 16.04.2008 11:37:24 von PointedEars

freelance71 wrote:
>> freelance71 schreef:
>>> I have to pass the string '\abcd' to a function. Ofcourse one (or two)
>>> extra '\' is needed to escape but experimenting with it shows that I have
>>> to pass three extra backslashes to make it work.
> [...]
> can it be because I'm using it in a PHP file like this?
>
> >
> echo <<< HTMLOUT
>
>
>
> HTMLOUT;
>
> ?>

Yes, you have to escape each backslash for use with `echo'. A simple test
(with php -a) shows that


echo <<
var q = '\\a';

HTML;

?>

displays only one backslash.

The simple and most efficient solution is to take heed of this general
advice: Do not let the PHP parser do things it does not have to.

...
?>
var q = '\\a';
...
?>

(The first and last part are optional, of course.)


F'up2 cl.php

PointedEars
--
realism: HTML 4.01 Strict
evangelism: XHTML 1.0 Strict
madness: XHTML 1.1 as application/xhtml+xml
-- Bjoern Hoehrmann