PHP字符串处理的思考与记录
2017-02-25 08:08
337 查看
判断字符串是否为空
判断字符串是不是全是空格
将字符串以空格分割为数组
将16进制字符串转换为10进制
判断一个字符串是否都是空格
输出
‘0’ 显然是不为空的,所以使用empty判断字符串是否为空就是个陷阱!
后面改进为,方法一:
输出
数组和数字也被判定成不为空了。
不过既然是弱类型语言,到时候这些也可以转为字符串格式来使用,所以关系不大。
但是在特殊情况下,需要更严格的检查方案,则需要再改进下:
方法二:
先判断有没有赋值,然后判断是不是字符串,最后判断字符串长度是不是为0,有了三重保险,输出:
这样把非字符串类型也排除在外了。
使用什么方法判定字符串为不为空要根据具体需求,如果对类型不那么严格,用方法一;如果只允许字符串,使用方法二。
如果全是空格,返回true;如果不是,返回false。
如果使用上面的方式,那就太单纯了,假如字符串包含多个空格怎么办?
需要使用以下方法:
intval()函数可以将字符串转为10进制整数
参数一为要转换的数字(字符串类型)
参数二是可选参数,用来指定基底,默认是10
也就是说,字符串为‘0x’开头,是16进制格式,参数二要指定为16
字符串为‘0’开头,是8进制格式,参数二要指定为8
返回值为10进制整数;如果不能识别该字符串,则返回0
base_convert()函数也可以用来转换进制,只不过返回的还是字符串类型的数字
参数一为要转换的数字(字符串类型)
参数二为当前的进制
参数三为要转换的进制
返回值为相应进制的数字(字符串类型);如果字符串不能识别,则返回‘0’。
‘\t’ 制表符也是空格。
方法二,使用ctype_space()函数:
判断字符串是不是全是空格
将字符串以空格分割为数组
将16进制字符串转换为10进制
判断一个字符串是否都是空格
判断字符串是否为空
判断字符串为不为空,不能使用empty,因为empty会认为’0’也是空的$s = '0'; if(empty($s)) { var_dump('s为空'); } else { var_dump('s不为空'); }
输出
"s为空"
‘0’ 显然是不为空的,所以使用empty判断字符串是否为空就是个陷阱!
后面改进为,方法一:
if(!isset($s) || $s === '') { var_dump('s为空'); } else { var_dump('s不为空'); }
输出
$s = array(); //输出:"s不为空" $s = 0; //输出:"s不为空" $s = '0'; //输出:"s不为空" $s = ''; //输出:"s为空" $s = null; //输出:"s为空" $s = NULL; //输出:"s为空" $s = 'null'; //输出:"s不为空"
数组和数字也被判定成不为空了。
不过既然是弱类型语言,到时候这些也可以转为字符串格式来使用,所以关系不大。
但是在特殊情况下,需要更严格的检查方案,则需要再改进下:
方法二:
if(!isset($s) || !is_string($s) || strlen($s) == 0) { var_dump('s为空'); } else { var_dump('s不为空'); }
先判断有没有赋值,然后判断是不是字符串,最后判断字符串长度是不是为0,有了三重保险,输出:
$s = array(); //输出:"s为空" $s = 0; //输出:"s为空" $s = '0'; //输出:"s不为空" $s = ''; //输出:"s为空" $s = null; //输出:"s为空" $s = NULL; //输出:"s为空" $s = 'null'; //输出:"s不为空"
这样把非字符串类型也排除在外了。
使用什么方法判定字符串为不为空要根据具体需求,如果对类型不那么严格,用方法一;如果只允许字符串,使用方法二。
判断字符串是不是全是空格
$is_space = ctype_space($text);
如果全是空格,返回true;如果不是,返回false。
将字符串以空格分割为数组
$test_array = explode(' ', $test_string);
如果使用上面的方式,那就太单纯了,假如字符串包含多个空格怎么办?
需要使用以下方法:
$test_array = preg_split('#\s+#', $test_string);
将16进制字符串转换为10进制
$a = '0x000000010184f2fc'; // 方法一 $b = intval($a, 16); var_dump($b); // 输出: 4320457468 // 方法二 $c = base_convert($a, 16, 10); var_dump($c); // 输出: 4320457468
intval()函数可以将字符串转为10进制整数
参数一为要转换的数字(字符串类型)
参数二是可选参数,用来指定基底,默认是10
也就是说,字符串为‘0x’开头,是16进制格式,参数二要指定为16
字符串为‘0’开头,是8进制格式,参数二要指定为8
返回值为10进制整数;如果不能识别该字符串,则返回0
base_convert()函数也可以用来转换进制,只不过返回的还是字符串类型的数字
参数一为要转换的数字(字符串类型)
参数二为当前的进制
参数三为要转换的进制
返回值为相应进制的数字(字符串类型);如果字符串不能识别,则返回‘0’。
判断一个字符串是否都是空格
方法一,使用正则表达式判断:$test = " \t "; $pattern = '/^(\s+)$/'; $is_match = preg_match($pattern, $test); if ($is_match) { var_dump('都是空格'); } else { var_dump('不都是空格'); } // 输出:都是空格
‘\t’ 制表符也是空格。
方法二,使用ctype_space()函数:
$test = " \t "; $is_match = ctype_space($test); if ($is_match) { var_dump('都是空格'); } else { var_dump('不都是空格'); }
相关文章推荐
- PHP中MySQL处理记录
- PHP - Manual手册 - CLXI. String 字符串处理函数 - str_pad使用另一个字符串将一个字符串填充到指定长度
- php字符串处理函数大全(学习)
- php字符串处理函数
- php字符串处理函数讲解
- PHP字符串处理函数
- 字符串处理的一个简单Function 仅作记录
- php之字符串处理函数
- php字符串处理函数讲解
- PHP对HTML编码字符串的处理
- PHP - Manual手册 - 函数参考 - String 字符串处理函数 - explode使用一个字符串分割另一个字符串
- PHP - Manual手册 - CLXI. String 字符串处理函数 - str_replace用替换字符串替换所有出现的搜索字符串
- php字符串处理函数讲解
- php处理字符串,判断是否含有特殊符号,非中文,数字,字符
- PHP 中英文混合排版中处理字符串常用的函数
- PHP 中英文混合排版中处理字符串常用的函数
- PHP处理字符串的几段代码
- PHP处理字符串时需要注意的问题
- 【转】PHP字符串处理函数列表
- php字符串处理函数库