欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

HTML字符编码JS和PHP 转义

程序员文章站 2024-04-03 14:25:16
...

今天遇到一个挺有趣的字符编码转义,通过HTML的Textarea表单JQuery Ajax POST内容到PHP,然后存储到MySQL数据库,然后Ajax根据POST 的 DATA 回显,如果刷新页面,通过PHP 输出MySQL 存储的编码; 首先引用一下转义字符串的基础知识。 转义字符串 基本知识 转

今天遇到一个挺有趣的字符编码转义,通过HTML的Textarea表单JQuery Ajax POST内容到PHP,然后存储到MySQL数据库,然后Ajax根据POST 的 DATA 回显,如果刷新页面,通过PHP 输出MySQL 存储的编码;

首先引用一下转义字符串的基础知识。

转义字符串 基本知识

转义字符串(Escape Sequence),即字符实体(Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。

比如,要显示小于号(

用实体(Entity)名字的好处是比较好理解,一看lt,大概就猜出是less than的意思,但是其劣势在于并不是所有的浏览器都支持最新的Entity名字。而实体(Entity)编号,各种浏览器都能处理。

提示:实体名称(Entity)是区分大小写的。 同一个符号,可以用“实体名称”和“实体编号”两种方式引用,“实体名称”的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,而“实体编号”则没有这种担忧,但它实在不方便记忆。

JS 将HTML字符编码 转换到 特殊字符

定义一个函数decodeEntities将HTML字符编码 转换到 特殊字符:

function decodeEntities(s){
    var str, temp= document.createElement(‘p’);
    temp.innerHTML= s;
    str= temp.textContent || temp.innerText;
    temp=null;
    return str;
}

这个函数,将会把'  & 等直接转换为’ (单引号) 和 &

比如 you appreciate the driver's consideration , & 就会变成 you appreciate the driver’s consideration , &

PHP 将HTML字符编码 转换到 特殊字符

PHP 默认有函数将 HTML字符编码 转换到 特殊字符

html_entity_decode (PHP 4 >= 4.3.0, PHP 5)

string html_entity_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = 'UTF-8' ]] )

html_entity_decode — Convert all HTML entities to their applicable characters (转换所有的HTML字符编码到对应的特殊字符串)

注意这个函数的参数ENT_COMPAT 默认会转换双引号,不会转换单引号;

为了能够同时转换单引号和双引号,需要使用 int $flags = ENT_QUOTES

通过以下的这段PHP处理数据库中的值:

html_entity_decode($node->body, ENT_QUOTES | ENT_HTML401)

这个函数,将会把'  & 等直接转换为’ (单引号) 和 &

比如 you appreciate the driver's consideration , & 就会变成 you appreciate the driver’s consideration , &

整个流程操作

假设在HTML文本框中输入这三行内容:

you appreciate the driver's consideration , &
you appreciate the driver's consideration , &
you appreciate the driver’s consideration , &

如下图:

HTML字符编码JS和PHP 转义

点击“确定”按钮后,执行JQuery Ajax Post 操作 通过PHP插入到数据库;

(...)
Read the rest of HTML字符编码JS和PHP 转义 (108 words)


© lixiphp for LixiPHP, 2013. | Permalink | No comment | Add to del.icio.us
Post tags: html, JQuery, js, MySQL, PHP, 字符编码, 转义

Feed enhanced by Better Feed from Ozh