Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ampersand in link description text?

Tags:

php

urlencode

I am validating my site using http://validator.w3.org and have an issue where there is an & in my link description text.

This is taken from the source:

<a class='tag' href='/php/iphone software.php?function=developer&amp;dev=witch%26wizards+inc.&amp;store=143441'>witch&wizards inc.</a>

This gives this error in the validator:

Line 188, Column 540: cannot generate system identifier for general entity "wizards"

…6wizards+inc.&store=143441'>witch&wizards inc.

✉ An entity reference was found in the document, but there is no reference by that name defined

If I urlencode the description then the validation passes, but the user then sees the text displayed urlencoded, ie

Developer witch%26wizards+inc.

However, I believe it's much more user friendly if this was displayed unencoded, ie

Developer witch&wizards inc.

Is there a way to pass validation, but still have user friendly text displayed?

like image 386
kitenski Avatar asked Dec 17 '22 18:12

kitenski


1 Answers

Simple:

For ampersands as part of query string values, URL encode them to %26.

For displaying ampersands as text, or ampersands used to separate query string key-value pairs — in other words, for almost everything else — HTML encode them to their entities &amp;.

Your HTML should look like this:

<a class='tag' href='/php/iphone%20software.php?function=developer&amp;dev=witch%26wizards+inc.&amp;store=143441'>witch&amp;wizards inc.</a>
like image 121
BoltClock Avatar answered Jan 06 '23 10:01

BoltClock