一直都是用正则表达式来判断,个人不喜欢这种方式,想到ASCII码可以来区别。
找到php有个ord()函数:W3C文档:http://www.w3school.com.cn/php/func_string_ord.asp
ord() 函数返回字符串的首个字符的 ASCII 值。
大小写字母的ASCII码在
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);