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
$input = <<< End
"Stop pulling my hair!" jane's eyes flashed
End;
//上面那个End必须要顶格写,前面不能有空格否则会报错
echo htmlentities($input)."\n";
echo htmlentities($input,ENT_QUOTES)."\n";
echo htmlentities($input,ENT_NOQUOTES);
?>
输出:
将实体转换为原始文本
example:
<?php
/*
* 将实体转换为原始文本
*/
$str = htmlentities("Einsturzende Neubauten");//将原始文本进行编码
$table = get_html_translation_table(HTML_ENTITIES);//获得htmlentities()的转换表
$rev_trans = array_flip($table);//翻转转换表
echo strtr($str, $rev_trans);//得到字符串
?>
输出:
使用转换表增加你想要转换的编码。
example:
<?php
/*
* 使用转换表增加编码
* 在这里演示将空格编码为
*/
$table = get_html_translation_table(HTML_ENTITIES);
$table[' '] = ' ';
$original = null;
$encoded = strtr($original, $table);
?>
2.删除HTML标签:使用函数strip_tags();
该函数的第二个参数用来指定在字符串中留下的标签。
example:
$input = 'The <b>bold</b> tags will <i>stay</i><p>';
$output = strip_tags($input,'<b>');//输出为'The <b>bold</b> 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:
<?php
/*
* 对URL进行编码的第一种方式
*/
$name = "Programming PHP";
$output = rawurlencode($name);//编码
echo "http://localhost/$output"."\n";//组合字符串生成链接地址
echo rawurldecode($output);//解码
?>
输出:
②.执行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():接收一个字符串并返回去掉转义后的字符串。