String addslashes(string str)
在预定义字符前添加\\这些预定义字符是:单引号,双引号,和反斜线。 注意:当php.ini中的magic_quotes_gpc设置为On时,不要再对从客户端传进来的字符串进行addslashes(),否则会导致双重转义。 可以使用get_magic_quotes_gpc()函数判断php.ini中的magic_quotes_gpc选项是否打开(On或Off)。
当php.ini的magic_quotes_gpc为Off时,构造一条SQL语句或为了防止SQL注入经常使用addslashes()函数。
stripslashes(string str)
删除字符串str中的反斜线。经常用于删除addslashes()添加的反斜线。当PHP中php.ini的magic_quotes_gpc为On时,POST,GET,Cookie中的特殊字符会自动转义,因此可以使用stripslashes(string str)函数删除转义符号反斜线。 6)
HTML特殊字符处理函数htmlspecialchars()和strip_tags()
HTML和XML中内建了4个预定义实体。
< > & " htmlspecialchars(string str)将str中的特殊字符(<,>,&,”)转换成对应的预定义实体。htmlspecialchars()适用场景:
当现实GET或者POST提交的字符串数据时,先使用htmlspecialchars()
< > & “ 函数对GET或POST字符串进行处理,防止用户提交HTML代码或JS代码破坏系统。
strip_tags()剔除Html,xml,JS,以及PHP中的标签。
7)字符串格式化函数
sprintf()和printf()
string sprintf(string format,arg1,arg2…argn)
format包含n个转换格式,每个转换格式以%开始,arg1,arg2.。。argn替换format中对应的转换格式。
转换格式 % b c d e f o s u x X
create by zhang on time 2013-7-7 下午03:40:46
说明 打印百分比符号,不转换 转换成二进制数 转换成对应的ASCII字符 转换成十进制数 可续计数法(比如:1.5e+3) 转换成浮点数 转换成8进制数 转换成字符串 转换成无符号十进制数 转换成小写十六进制 转换成大写十六进制 */
$a=\;
$text=sprintf(\br/>%s
%u
%x
%X
\, $a,$a,$a,$a,$a,$a,$a,$a,$a,$a); echo $text;
?>
1111011 { 123
1.230000e+2 123.000000 173 123.0 123 7b 7B
方法二:
$b=\;
$text1=sprintf(\/>%1\\$f
%1\\$o
%1\\$s
%1\\$u
%1\\$x
%1\\$X
\, $b);
echo $text1; ?>
1\\$是占位符,表示使用第一个参数$b的值
$money1=\; $money2=\;
$money=$money1+$money2;
echo sprintf(\,$money); ?>
小数点后保留两位0.2的0可以省略不写。
int printf(string format,arg1,arg2,arg3…argn)
将字符串format格式化后的字符串打印到浏览器页面上,并返回格式化后的字符串的长度。
字符串长度函数:
1)int strlne(string str)
返回字符串的长度 2)
int mb_strlen(string str[,string encoding])
该函数可以设置encoding编码方式解析字符串str。若将encoding设为GBK或GB2312,则使用中文字符解析方式解析字符串(将一个汉字按照两个字节解析。)UTF-8中中文是3个字节,GBK,gb2312是2个字节。 使用该函数时,要确保php.ini配置文件中配置选项 ;extension=php_mbstring.dll前面的;去掉
可以在php.ini中配置mb_strlen()函数的默认编码方式。将mbstring.internal_encoding
=
EUC-JP
改
成
mbstring.internal_encoding = GBK,重启服务器即可。
子字符串操作函数:
1) string substr(string str,int start[,int length]) 返回str从start索引和start+length之间的字符串。没有指定length的话返回start到结尾之间的字符串。substr()从中文字符串中取字串时,有可能导致乱码的产生。使用mb_substr()和mb_strcut()可以解决从中文字符中取字串时的乱码问题。 2) string mb_substr(string str,int start[,int length[,string encoding]])
将中文字符按照两个字节进行解析,解析时多余的一个字节舍去,从而避免乱码问题的产生。 如果php.ini中的mbstring.internal_encoding = GBK,此时可以省略编码方式encoding。
$str=\张风\;
echo mb_substr($str, 0,10,\);// yishaoku张风
3)string mb_strcut(string str,int start[,int length[,string encoding]])
和mb_substr()功能基本相同,区别是该函数将字符串中每个字符按照一个字节长度解析,对于占用两个字节的中文汉字,截取时多余的一个字节将舍去,从而避免乱码问题的产生。 $str=\张风\;
mb_strcut()默认编码方式是GBK,如果php.ini中的
mbstring.internal_encoding = GBK,此时可以省略编码方式encoding。
在字符串中查找子串的位置:
1) int strops(string str,string substr[,int offset]) 在str中以区分大小写方式查找substr第一次出现的索引,offset指定从str哪个索引开始查找。不存在的话返回false。
2) int strrops(string str,string substr[,int offset]) 在str中以区分大小写方式查找substr最后一次出现的索引,offset指定从str哪个索引开始查找。不存在的话返回false。
3)int mb_strpos(string str,string substr[,int offset[,string encoding]])
功能和strops()相同只是可以设置编码方式。用指定的编码解析字符串str
4)int mb_strrpos(string str,string substr[,int offset[,string encoding]])
功能和strrops()相同只是可以设置编码方式。用指定的编码解析字符串str
echo mb_strcut($str, 0,10,\);//yishaok张