您的位置:首页 > 编程语言 > PHP开发

php strlen与mb_strlen的区别。function_exists()与isset()区别、 preg_match()、in_array、:$_char_pattren使用方法

2019-07-21 23:54 465 查看
注1:strlen与mb_strlen的区别
strlen()函数无法正确处理中文字符串,它得到的只是字符串所占的字节数,所以在查看一个字符串的长度的时候,strlen并不能得到我们需要的真实值,mb_strlen 函数可以很好的处理这一点。
在strlen()中,编码为GB2312,一个汉字占2个字节。编码为utf-8的话,一个汉字占3个字节。
但在mb_strlen()中,编码为utf-8的话,则会将中文字符当成一个字符,英文也当做一个字符 mb_strlen($str, 'utf-8'),当不选择编码方式时,一个中文还是3个字符长度。当mb_strlen的内码选择为gbk的时候,一个中文字符当成1.5个字符来处理来处理

mb_internal_encoding()会得到当前PHP使用的内部编码

注2:
function_exists()	检测函数是否存在(定义),定义返回true。除了检测用户定义之外还包括系统内置函数,但是这个函数的范围只能检测当前脚本是否存在,跨脚本的话,检测不出来。
isset():检测一个变量是否存在

注3: preg_match(),执行一个正则表达式匹配。如果找到一个匹配,preg_match() 函数返回 1,否则返回 0。
preg_match();只匹配一次,区分大小写,如果不想区分大小写,则在末尾加上i。例如:preg_match('/\w/i',$str);

preg_match(字符串类型,输入字符串)   //不止两个参数

preg_match_all();   执行一个全局正则表达式匹配

注4:in_array($_string,$_mg):$_string是否存在于$_mg。检查数组中是否存在某个值。

注5:$_char_pattren='/[<>\'\ \ ]/';
开头和结尾的 / 是定界符;而[ ]是用来自定义原子表。例如:'[aj]sp' -- 可以匹配asp、jsp两种,从这两个选择其中一个作为原子。而<> \' \'' \\ 就是原子,也就是不允许出现的字符;
其中 \' 代表的是 ’ 而\是转义字符;

解决HTML乱码:<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
解决HTML与PHP混合乱码:header('Content-type:text/html;charset=utf-8');

error_reporting() 设置 PHP 的报错级别并返回当前级别。
error_reporting(E_ERROR | E_WARNING | E_PARSE);//显示运行时错误,与error_reporting(E_ALL ^ E_NOTICE);效果相同。error_reporting(E_ALL);//显示所有错误
error_reporting(E_ALL ^ E_NOTICE);解决警告显示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: