一直都是用正则表达式来判断,我的不喜欢这种方式,想到ASCII码能够来区别。php
找到php有个ord()函数:W3C文档:http://www.w3school.com.cn/php/func_string_ord.asp git
ord() 函数返回字符串的首个字符的 ASCII 值。正则表达式
大小写字母的ASCII码在json
65-90,97-122
之间。函数
<?php $str="http://my.oschina.net/rain21/admin/new-blog"; $arr=str_split($str); /*65-90,97-122*/ foreach($arr as $k=>$v){ $check=ord($v); if(($check>=65&&$check<=90)||($check>=97&&$check<=122)){ $newArr[]=empty(rand(0,1))?strtoupper($v):$v; }else{ $newArr[]=$v; } } echo implode('',$newArr);
is_numeric:检测是否为数字字符串,可为负数和小数
ctype_digit:检测字符串中的字符是否都是数字,负数和小数会检测不经过
注意,参数必定要是字符串,若是不是字符串,则会返回0/FASLE 加密
<?php $startTime = microtime(true); $options = array('cost' => 12); $password=password_hash("wsy1995", PASSWORD_BCRYPT,$options); var_dump(password_verify('wsy1995',$password)); echo $password; $endTime = microtime(true); echo '共耗时:'.($endTime-$startTime); echo '运行后内存:'.memory_get_usage()/1024/1024;
function json($code, $message = '', $data = array()) { if(!is_numeric($code)) { return ''; } $result = array( 'code' => $code, 'message' => $message, 'data' => $data ); echo json_encode($result); exit; }