使用php转义plist的字符串值

han*_*nno 0 php iphone plist

如何使用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)

不起作用.

Pek*_*ica 8

CDATA应该是正确的方法:

 <plist version="1.0">
  <string><![CDATA[<?php echo "@!£$%^&*)}{:|<>/"; ?>]]></string>
 </plist>
Run Code Online (Sandbox Code Playgroud)

你必须逃避的内容中唯一的事情就是真正的<![CDATA[开场白.

如果由于某些原因不起作用,rawurlencode()会将所有非字母数字字符转换为RFC 1738代码,您的目标可能更容易消化.