[Templates] escaping \n in strings
Josh Rosenbaum
josh@infogears.com
Wed, 14 Jun 2006 05:55:58 -0600
Womble wrote:
> The pages we're generating have PHP in them on occasion (yes, I know
> this is sick and wrong but no one else here knows perl and none of them
> will go to the effort of learning it), and sometimes we need the php to
> spit out '\n', but TT2 keeps eating the \n and printing a new line. I
> tried escaping the \n with \\n (and \\\n and \\\\n) but that doesn't work.
>
> The trouble I think is that the PHP fragment is a variable in the
> template and, although the $'s and "'s are escaped and behaving, the \n
> isn't, which doesn't make sense.
>
> I assume no one has been sick enough to put PHP in their source files
> before, so this hasn't been noticed? Or am I just missing something
> obvious?
>
> Jess
Hmm that is interesting. I don't have time right now to check into this further (or search the mail list archives), but I just tested and found this to be true for double quotes. Single quotes behave correctly, though, so you can use them as a work around method.
Input:
-------------------
"\n": [% "\n" %]
"\\n": [% "\\n" %]
"\\\n": [% "\\\n" %]
'\n': [% '\n' %]
'\\n': [% '\\n' %]
-------------------
Output:
-------------------
"\n":
"\\n":
"\\\n": \
'\n': \n
'\\n': \n
-------------------
-- Josh