php 检查字符串类型,PHP之字符串类型与检验
1.前言
PHP的字符串是基礎的重點,因此掌握字符串的一些定義和函數(shù),有助于我們更好的開發(fā)。
2.基本語法表達方式
2.1單引號
該表達方式不能解析變量,但能夠解析轉(zhuǎn)義符\’和\\
2.2雙引號
能夠解析所有變量轉(zhuǎn)義符
2.3heredoc語法結(jié)構(gòu)
在代碼中可以解析變量,用法如下:
echo <<
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
?>
2.4nowdoc語法結(jié)構(gòu)
在代碼中不能解析變量,用法如下:
$str = <<
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;
3.其他類型轉(zhuǎn)換字符類型
3.1數(shù)值型轉(zhuǎn)換成字符串型
數(shù)值->數(shù)值本身
echo 123;
echo‘
’;
echo 34.5;
echo‘
’;
3.2布爾類型轉(zhuǎn)換成字符串類型
echo true;
echo‘
’;
echo‘A’,false,’B’;
注意:false轉(zhuǎn)換成空字符串
3.3NULL轉(zhuǎn)換成字符串
echo‘C’,null,;D’;
注意:NULL轉(zhuǎn)換成空字符串
3.4數(shù)組轉(zhuǎn)換成字符串
$arr=array();
echo $arr;
報錯提示該變量是數(shù)組array
3.5資源轉(zhuǎn)換成字符串
$handle=fopen(‘index.php’,’r’);
echo $handle;
3.6對象轉(zhuǎn)換成字符串
$obj= new stdClass;
var_dump($obj);
echo $obj;
對象不能直接轉(zhuǎn)換成字符串
3.7強制轉(zhuǎn)換和臨時轉(zhuǎn)換
3.7.1臨時轉(zhuǎn)換
$var=123;
$var=23.3;
$res=(string)$var;
var_dump($res,$var);
注意:臨時轉(zhuǎn)換本身的類型并沒有發(fā)生變化
3.7.2永久轉(zhuǎn)換
$str=123;
echo gettype($str);
$var=12;
settype($var,’string’);
var_dump($var);
3.8字符串轉(zhuǎn)換成其他類型
//取合法數(shù)字,如果不是以合法數(shù)字開始,轉(zhuǎn)換成0
echo 1+’3king’;//4
echo 1.2+’4abc’;//5.2
echo 3+’2e2’;//203
echo 2+’true’;//2
3.9字符串轉(zhuǎn)成布爾類型規(guī)律
首先注意空字符串(’’),字符串0(’0’),”0”,0,0.0,null,array()都是false,而’0.0’字符串是true
4.常用字符串函數(shù)分類
4.1字符串長度
strlen($string):得到字符串長度
4.2字符串查找
strpos($string,$search[,$offset]):區(qū)分大小寫的在指定字符串中查找目標字符串第一次出現(xiàn)的位置
stripos($string,$search[,$offset]):忽略大小寫的在指定字符串中查找目標符串第一次出現(xiàn)的位置
strrpos($string,$search[,$offset]):在指定字符串中查找目標字符串最后一次出現(xiàn)的位置
strripos($string,$search[,$offset]):忽略大小寫的在指定字符串中查找目標字符串最后一次出現(xiàn)的位置
strstr|strchr($string,$search[,$before_needle]):查找字符串的首次出現(xiàn),返回的是字符串從匹配點的剩余部分,如果未找到所搜索的字符串,則返回 FALSE
stristr($string,$search[,$before_needle]):忽略大小寫的去查找字符串在另一字符串中的第一次出現(xiàn),并返回字符串的剩余部分
strrchr($string,$search):查找指定字符在字符串中的最后一次出現(xiàn),并返回從該位置到字符串結(jié)尾的所有字符
str_replace($search,$replace,$string):在指定字符串中查找另外一個字符串,找到之后將其替換成指定字符串(區(qū)分大小寫)
str_ireplace($search,$replace,$string):在指定字符串中查找另外一個字符串,找到之后將其替換成指定字符串(不區(qū)分大小寫)
4.3字符串大小寫轉(zhuǎn)換
strtolower($string):返回小寫之后的字符串
strtoupper($string):返回大寫之后的字符串
ucwords($string):字符串的單詞的首字母大寫
ucfirst($string):字符串的單詞的首字母大寫
lcfirst($string):字符串的單詞的首字母小寫
4.4字符串截取
substr($string,$start[,$length]):截取字符串
substr_replace($string,$replace,$start[,$length]):替換字符串的子串
代碼示例:
$string=’abcdef’;
echo substr($string,0,1);//a
echo substr($string,2,2);//cd
echo substr($string,3);//def
echo substr($string,-2);//ef
echo substr($string,-4,-2);//cd
echo substr($string,0,-3);//abc
echo substr($string,-4,-2);//cd
4.5字符串ASCLL
ord($char):得到指定字符的ASCII
chr($ascii):根據(jù)ASCII得到指定的字符
注意:大寫A的Dec是65,到90的Z;小寫a的Dec是97,到122的z
4.6加密
md5($string):計算字符串的md5的散列值,返回32位長度的字符串
sha1($string):計算字符串的sha1的散列值,返回40位長度的字符串
4.7過濾
trim($string[,$charlist]):默認過濾字符串兩端的空格,也可以過濾指定字符串
ltrim($string[,$charlist]):過濾字符串左端
rtrim|chop($string[,$charlist]):過濾字符串右端
strip_tags($string[,$allowTag]):過濾字符串中的HTML標記
addslashes($string):使用反斜線引用字符串中的特殊字符
htmlentities($string[,$flag=ENT_COMPAT]):將所有字符轉(zhuǎn)換成HTML實體
htmlspecialchars($string[,$flag=ENT_COMPAT]):將字符串中的特殊字符轉(zhuǎn)換成HTML實體
nl2br($string):將字符串中的\n用
替換
4.8比較
strcmp($string1,$string2):比較兩個字符串的大小
strcasecmp($string1,$string2):忽略大小寫的比較字符串的大小
strnatcasecmp($string1,$string2):使用自然順序算法比較字符串
strncasecmp($string1,$string2,$len):比較字符串的開始的若干個字符
代碼示例:
$str1=’abcdef’;//97
$str2=’ac’;//98
echo strcmp($str1,$str2);
/*
1--$str1>$str2
-1--$str1
0--$str1=$str2
*/
4.9拆分/合并
explode($delimiter,$string):將指定字符串拆分成數(shù)組
implode|join($delimiter,$array):以指定分隔符將數(shù)組中的鍵值連接成字符串
str_split($string[,$split_length=1]):將字符串轉(zhuǎn)換成數(shù)組
4.10格式化字符串
printf($format[,$args]):格式化輸出字符串
sprintf($format[,$args]):格式化輸出字符串
4.11其他常用
strrev($string):反轉(zhuǎn)字符串
str_shuffle($string):隨機打亂字符串
str_repeat($string):重復字符串
str_getcsv($input[,$delimiter=','[,$enclosure=''[,$escape='\\']]]):解析CSV字符串為一個數(shù)組
parse_str($str[,$arr]):將字符串解析成多個變量
5.一些應用案例
5.1隨機取字符串內(nèi)的數(shù)值
/**
* 隨機取字符串內(nèi)的數(shù)值
* mt_rand(從那個位置開始取,取值的長度)
* @param int $length
* @return string
*/
public function getRandString($length=4){
$string='abcdefghijklmnopqistuvwsyz';
$str = '';
for ($i=0;$i
$str.= $string{mt_rand(0,strlen($string)-1)};
}
return $str;
}
5.2驗證用戶名長度是否符合規(guī)范
/**
* 檢測用戶名長度是否符合要求6-10
* @param $username
* @return array
*/
public function checkUserName($username){
$userLen = strlen($username);
if($userLen<6||$userLen>10){
$data = ['code'=>'error','msg'=>'用戶名長度不符合規(guī)范','data'=>''];
}else{
$data = ['code'=>'ok','msg'=>'用戶名長度符合規(guī)范','data'=>''];
}
return $data;
}
5.3驗證密碼是否符合規(guī)范
/**
* 驗證密碼是否符合規(guī)范
* @param $password
* @return array
*/
public function isPassword($password){
$pwdLen = strlen($password);
if($pwdLen==0){
$data = ['code'=>'error','msg'=>'密碼不能為空','data'=>''];
}elseif($pwdLen<6||$pwdLen>10){
$data = ['code'=>'error','msg'=>'密碼長度不符合規(guī)范','data'=>''];
}else{
$data = ['code'=>'ok','msg'=>'密碼符合規(guī)范','data'=>''];
}
return $data;
}
5.4驗證郵箱是否符合規(guī)范
/**
* 驗證郵箱是否符合規(guī)范
* @param $email
* @return array
*/
public function checkEmail($email){
if(strpos($email,'@')==false){//@在字符串第一次出現(xiàn)的位置
$data = ['code'=>'error','msg'=>'非法郵箱','data'=>''];
}else{
$data = ['code'=>'ok','msg'=>'郵箱符合規(guī)范','data'=>''];
}
return $data;
}
5.5轉(zhuǎn)換和統(tǒng)一輸入的數(shù)據(jù)格式
/**
* 轉(zhuǎn)換和統(tǒng)一輸入的數(shù)據(jù)格式
*@param$string
*@returnstring
*/
public functionchangeStyle($string){
//trim表示去掉兩邊的空格
//strtolower表示將字符串全部小寫
$string = trim(strtolower($string));
return$string;
}
5.6驗證用戶名是否符合規(guī)范
/**
* 驗證用戶名是否符合規(guī)范
* 大寫的A~Z的ASCII碼是:65~98
* 小寫的a~z的ASCII碼是:97~122
* ord()函數(shù)可以獲得某字符的ASCII碼
*@param$username
*@returnarray
*/
public functioncheckUserNameString($username){
$ascil = ord($username);
if(!(($ascil>=65&&$ascil<=90)||($ascil>=97&&$ascil<=122))){
$data = ['code'=>'error','msg'=>'用戶名不符合規(guī)范','data'=>''];
}else{
$data = ['code'=>'ok','msg'=>'用戶名符合規(guī)范','data'=>''];
}
return$data;
}
5.7驗證密碼是否一致
/**
* 驗證密碼是否一致
* strcmp()是比較兩個字符串的大小,當全等于的時候為0
*@param$password
*@returnarray
*/
public functioncheckPassword($password,$pwd){
if(strcmp($password,$pwd)!==0){
$data = ['code'=>'error','msg'=>'兩次密碼不一致','data'=>''];
}else{
$data = ['code'=>'ok','msg'=>'密碼一致','data'=>''];
}
return$data;
}
總結(jié)
以上是生活随笔為你收集整理的php 检查字符串类型,PHP之字符串类型与检验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 欧洲首个,英国通过基因编辑育种法案,允许
- 下一篇: 国家信息中心副主任徐长明:蔚来单车均价已