json去除转义字符方法
php 接受json数据时有转义字符处理办法
因为现在数据传输几乎都是以json格式去传,而在将数据转化成json 的时候一般都是做转义处理,这个时候如果直接用json_decode函数处理接受的json数据,系统肯定是会报错的,因为转换不过来,而处理办法也很简单,就是将json数据中的转义字符去掉就可以了,php有一个函数stripslashes()就是干这个事情的,它的作用就是删除addslashes()函数添加的反斜杠;当然字符串中的反斜杠这个函数都是可以去除的。
为什么要进行url encode
rl转义其实也只是为了符合url的规范而已。因为在标准的url规范中中文和很多的字符是不允许出现在url中的。
看一下php的urlencode的说明了。
urlencode — 编码 URL 字符串
string urlencode ( string $str )
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页
什么是CDATA段
CDATA DTD中的属性类型 全名:character data 在标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下: CDATA的文本内容中不能出现字符串“]]>”,另外,CDATA不能嵌套。 DTD实例: 指定类型为CDATA以后就可以在XML中被用于实例, 例如下面payment 元素的type属性被指定为CDATA类型后在XML中就可以赋于"check"的字符数据。 XML 实例: 在CDATA标记中的信息被解析器原封不动地传给应用程序,并且不解析该段信息中的任何控制标记。 CDATA区域是由“”为结束标记,注意CDATA为大写。 PHP实例: 比如:PHP中的
,DIV中就表示: Attribute : class Data Type : CDATACDATA段是XML中一种用于定义文本内容的特殊表示方式。CDATA(Character Data)段用于包含包含任意文本内容,包括特殊字符如"<", ">", "&"等,而不会被XML解析器解析或转义。CDATA段以"<![CDATA["开头,以"]]"结尾,中间的内容将被视为纯文本。CDATA段的用途通常是在包含特殊字符的文本内容(如代码、标记等)时,以免被解析器误解为XML标记或实体。
还没有评论,来说两句吧...