PHP程序设计读书笔记六

编码和转义
1.HTML:
在HTML中特殊的字符以实体表示,如&(字符'&')和<(字符'<')
对所有特殊字符进行实体引用
函数htmlentities()将HTML字符(除了空格)转换为对应的实体。这些字符包括小于(<),大于(>),与号(&)和重音字符。
htmlentities(input,quote_style,charset);
charset是识别字符集。默认为"ISO-8859-1"
quote_style控制单引号和双引号是否变成它们的实体的形式。
ENT_COMPAT(默认值)只转换双引号;
ENT_QUOTES:两种引号都转换;
ENT_NOQUOTES:一种都不转换;
转换原则:1.&  =>  &
2."  =>  "
3.'  =>  '
4.<  =>  <
5.>  =>  >

example:

输出:

PHP程序设计读书笔记六_第1张图片

将实体转换为原始文本

example:

输出:

使用转换表增加你想要转换的编码。
example:
    /*
     * 使用转换表增加编码
     * 在这里演示将空格编码为 
     */
    $table = get_html_translation_table(HTML_ENTITIES);
    $table[' '] = ' ';
    $original = null;
    $encoded = strtr($original, $table);
    ?>
2.删除HTML标签:使用函数strip_tags();
该函数的第二个参数用来指定在字符串中留下的标签。
example:
$input = 'The bold tags will stay

';
$output = strip_tags($input,'');//输出为'The bold tags will stay'
3.提取元标签:

如果你把web页面的HTML存在一个字符串中,函数get_meta_tags()可返回包含该页面中元标签内容的数组。元标签的名字(keywords,author等)将成为数组的键,而元标签的内容则成为对应的值。
函数的一般形式:$array = get_meta_tags(filename[,use_include_path]);
可以指定第二个参数为true,这样可使PHP常使用标准包含路径打开文件。
4.对URL编码:并不需要对一个完整的URL进行编码,因为在编码过程中会转义冒号和反斜杠。
应该只编码部分URL,随后再加上协议和域名
①.RFC1738编码
编码:$output = rawurlencode($input);//该函数接收一个字符串并返回对该字符串的拷贝,在该拷贝中把非法的URL字符按%dd约定编码。
解码:rawurldecode();
example:



输出:


②.执行application/x-www-from-urlencoded系统
编码:urlencode();
解码:urldecode();
这两者的区别是:
第一种将空格视为非法字符并把它编码为%20
第二种把空格编码为一个+并且把它用于建立查询的字符串中。
5.SQL转义:
绝大多数数据库系统都要求将SQL查询字符串进行转义。
SQL的转义规则为:在单引号、双引号、空字节和反斜杠前面加上一个反斜杠(\)
SQL转义函数:addslashes()
SQL反转义函数:stripslashes()
6.C语言字符串编码:
addcslashes()(注意:这个函数不是上面那个函数,这个函数多了一个c)函数模仿C语言的处理方式,通过在字符前加反斜杠来转义任意字符。ASCII值小于32或大于126的字符将使用它们的八进制值进行编码。
addcslashes()和stripcslashhes()函数常用于非标准的数据库系统,这些系统对哪些字符需要转义有自己的要求。
addcslashes(string,charset);
第一个参数:要编码的字符串
第二个参数:要转义的字符,用".."结构来指定要转义字符的范围:echo addcslashes("hello\tworld\n","\x00..\x1fz..\xff");//输出:hello\\tworld\\n
stripcslashes():接收一个字符串并返回去掉转义后的字符串。

你可能感兴趣的:(php)