Consider the following XML structure (in this case, its an RSS feed)
<feed xmlns="http://www.w3.org/2005/Atom">
<link href="http://example.com/atom/" rel="self" type="application/rss+xml"/>
<link rel="alternate" href="http://example.com/" type="text/html"/>
<title type="text">Example RSS feed</title>
<updated>2019-07-27T13:59:14-04:00</updated>
<subtitle>Example</subtitle>
<icon>http://example.com/favicon-32x32.png</icon>
<logo>http://example.com/logo.png</logo>
<rights>© 2019 Example</rights>
<author>
<name>Keanu Reeves</name>
<email>me@example.com</email>
<uri>http://example.com</uri>
</author>
<id>http://example.com/</id>
<entry>
<title>Example post</title>
<id>http://example.com/post/example</id>
<link rel="alternate" href="http://example.com/post/example"/>
<summary type="html">
Description of post. (Preview thing)
</summary>
<updated>2019-07-27T13:59:14-04:00</updated>
<author>
<name>Keanu Reeves</name>
</author>
</entry>
</feed>
If saved as an .atom file, this works flawlessly.
Tho, Id like to include the following in my post summary
:
Example text, blah blah blah. <a href="/post/example">Read more...</a>
The above links get interpreted as litteral HTML when escaped correctly using the function under this code snippet. Good!
Now, heres litteral "<" and ">" characters.... <><><<<>>
The last line I want to include renders the .atom file invalid, obviously. So I encoded that last line to be XML compliant using the following PHP function:
echo htmlentities("Now, heres litteral \"<\" and \">\" characters.... <><><<<>>",ENT_XML1);
That outputted the following bit of text:
Now, heres litteral "<" and ">" characters.... <><><<<>>
But now, all of my feed readers (Slick RSS for chrome and FeedR for android) interprets the above as literal HTML!
So how can I re-escape those?
Cheers :)