如何使用php为plist文件转义包含随机字符的字符串?htmlentities()似乎似乎不够严格.例如:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<string><?php echo htmlentities("@!£$%^&*)}{:|<>/");?></string>
</plist>
Run Code Online (Sandbox Code Playgroud)
不起作用.
CDATA应该是正确的方法:
<plist version="1.0">
<string><![CDATA[<?php echo "@!£$%^&*)}{:|<>/"; ?>]]></string>
</plist>
Run Code Online (Sandbox Code Playgroud)
你必须逃避的内容中唯一的事情就是真正的<![CDATA[开场白.
如果由于某些原因不起作用,rawurlencode()会将所有非字母数字字符转换为RFC 1738代码,您的目标可能更容易消化.