I've been battling with quotes encoding when outputting javascript with php.
It can't be unique, so I'm hoping someone has a working solution they're
willing to share.

The following works perfectly as long as there aren't any single quotes in
the link text:
        echo "<span onclick=\"insertLink('$sUrl','$sTitle')\"

if $sTitle has the value    What's new    it outputs:
        <span onclick="insertLink('article/whats-new.html','What&#039;s
new')" class='linkSel'>What&#039;s new</span>

It displays fine, but javascript complains with:
        Expected ')'  linkmanager.php Line:525 Char:63

So I fix this by swapping the double and single quotes around:
        echo "<span onclick='insertLink(\"$sUrl\",\"$sTitle\")'

Now for that specific link it outputs: 
        <span onclick='insertLink("article/whats-new.html","What&#039;s
new")' class='linkSel'>What&#039;s new</span>
And javascript is happy.

But elsewhere there's a link     Fred "Buster" Cox     and it outputs:
        <span onclick='insertLink("article/fred-buster-cox.html","Fred
&quot;Buster&quot; Cox")' class='linkSel'>Fred &quot;Buster&quot; Cox</span>

Again it displays fine, but javascript complains with:
        Expected ')'  linkmanager.php Line:743 Char:77

So it looks like I can't have links that include single quotes and double
quotes, only one or the other.

One work-around I thought of was to convert any link texts that included
double quotes into single quotes when the content is posted, and it would
then be displayed with single quotes even though the user entered double
quotes. It's far from ideal but it would work, though I can think of a few
situations where it would be quite confusing to the reader. Are there any
other solutions that would allow both types of quotes without any


PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to