php 检查字符串类型,PHP之字符串类型与检验
1.前言
PHP的字符串是基础的重点,因此掌握字符串的一些定义和函数,有助于我们更好的开发。
2.基本语法表达方式
2.1单引号
该表达方式不能解析变量,但能够解析转义符\’和\\
2.2双引号
能够解析所有变量转义符
2.3heredoc语法结构
在代码中可以解析变量,用法如下:
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语法结构
在代码中不能解析变量,用法如下:
$str = <<
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;
3.其他类型转换字符类型
3.1数值型转换成字符串型
数值->数值本身
echo 123;
echo‘
’;
echo 34.5;
echo‘
’;
3.2布尔类型转换成字符串类型
echo true;
echo‘
’;
echo‘A’,false,’B’;
注意:false转换成空字符串
3.3NULL转换成字符串
echo‘C’,null,;D’;
注意:NULL转换成空字符串
3.4数组转换成字符串
$arr=array();
echo $arr;
报错提示该变量是数组array
3.5资源转换成字符串
$handle=fopen(‘index.php’,’r’);
echo $handle;
3.6对象转换成字符串
$obj= new stdClass;
var_dump($obj);
echo $obj;
对象不能直接转换成字符串
3.7强制转换和临时转换
3.7.1临时转换
$var=123;
$var=23.3;
$res=(string)$var;
var_dump($res,$var);
注意:临时转换本身的类型并没有发生变化
3.7.2永久转换
$str=123;
echo gettype($str);
$var=12;
settype($var,’string’);
var_dump($var);
3.8字符串转换成其他类型
//取合法数字,如果不是以合法数字开始,转换成0
echo 1+’3king’;//4
echo 1.2+’4abc’;//5.2
echo 3+’2e2’;//203
echo 2+’true’;//2
3.9字符串转成布尔类型规律
首先注意空字符串(’’),字符串0(’0’),”0”,0,0.0,null,array()都是false,而’0.0’字符串是true
4.常用字符串函数分类
4.1字符串长度
strlen($string):得到字符串长度
4.2字符串查找
strpos($string,$search[,$offset]):区分大小写的在指定字符串中查找目标字符串第一次出现的位置
stripos($string,$search[,$offset]):忽略大小写的在指定字符串中查找目标符串第一次出现的位置
strrpos($string,$search[,$offset]):在指定字符串中查找目标字符串最后一次出现的位置
strripos($string,$search[,$offset]):忽略大小写的在指定字符串中查找目标字符串最后一次出现的位置
strstr|strchr($string,$search[,$before_needle]):查找字符串的首次出现,返回的是字符串从匹配点的剩余部分,如果未找到所搜索的字符串,则返回 FALSE
stristr($string,$search[,$before_needle]):忽略大小写的去查找字符串在另一字符串中的第一次出现,并返回字符串的剩余部分
strrchr($string,$search):查找指定字符在字符串中的最后一次出现,并返回从该位置到字符串结尾的所有字符
str_replace($search,$replace,$string):在指定字符串中查找另外一个字符串,找到之后将其替换成指定字符串(区分大小写)
str_ireplace($search,$replace,$string):在指定字符串中查找另外一个字符串,找到之后将其替换成指定字符串(不区分大小写)
4.3字符串大小写转换
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):根据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]):将所有字符转换成HTML实体
htmlspecialchars($string[,$flag=ENT_COMPAT]):将字符串中的特殊字符转换成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):将指定字符串拆分成数组
implode|join($delimiter,$array):以指定分隔符将数组中的键值连接成字符串
str_split($string[,$split_length=1]):将字符串转换成数组
4.10格式化字符串
printf($format[,$args]):格式化输出字符串
sprintf($format[,$args]):格式化输出字符串
4.11其他常用
strrev($string):反转字符串
str_shuffle($string):随机打乱字符串
str_repeat($string):重复字符串
str_getcsv($input[,$delimiter=','[,$enclosure=''[,$escape='\\']]]):解析CSV字符串为一个数组
parse_str($str[,$arr]):将字符串解析成多个变量
5.一些应用案例
5.1随机取字符串内的数值
/**
* 随机取字符串内的数值
* 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验证用户名长度是否符合规范
/**
* 检测用户名长度是否符合要求6-10
* @param $username
* @return array
*/
public function checkUserName($username){
$userLen = strlen($username);
if($userLen<6||$userLen>10){
$data = ['code'=>'error','msg'=>'用户名长度不符合规范','data'=>''];
}else{
$data = ['code'=>'ok','msg'=>'用户名长度符合规范','data'=>''];
}
return $data;
}
5.3验证密码是否符合规范
/**
* 验证密码是否符合规范
* @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'=>'密码长度不符合规范','data'=>''];
}else{
$data = ['code'=>'ok','msg'=>'密码符合规范','data'=>''];
}
return $data;
}
5.4验证邮箱是否符合规范
/**
* 验证邮箱是否符合规范
* @param $email
* @return array
*/
public function checkEmail($email){
if(strpos($email,'@')==false){//@在字符串第一次出现的位置
$data = ['code'=>'error','msg'=>'非法邮箱','data'=>''];
}else{
$data = ['code'=>'ok','msg'=>'邮箱符合规范','data'=>''];
}
return $data;
}
5.5转换和统一输入的数据格式
/**
* 转换和统一输入的数据格式
*@param$string
*@returnstring
*/
public functionchangeStyle($string){
//trim表示去掉两边的空格
//strtolower表示将字符串全部小写
$string = trim(strtolower($string));
return$string;
}
5.6验证用户名是否符合规范
/**
* 验证用户名是否符合规范
* 大写的A~Z的ASCII码是:65~98
* 小写的a~z的ASCII码是:97~122
* ord()函数可以获得某字符的ASCII码
*@param$username
*@returnarray
*/
public functioncheckUserNameString($username){
$ascil = ord($username);
if(!(($ascil>=65&&$ascil<=90)||($ascil>=97&&$ascil<=122))){
$data = ['code'=>'error','msg'=>'用户名不符合规范','data'=>''];
}else{
$data = ['code'=>'ok','msg'=>'用户名符合规范','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;
}
php 检查字符串类型,PHP之字符串类型与检验相关推荐
- 如何检查变量的类型是否为字符串?
有没有办法检查python中的变量类型是否为字符串. 喜欢: isinstance(x,int); 对于整数值? #1楼 根据以下更好的答案进行编辑. 下来大约3个答案,找出basetring的凉爽. ...
- 字符串补充知识及列表类型
字符串需要掌握的方法 1.strip 去除指定字符lstrip 去除左边指定字符rstrip 去除右边指定字符print('**sss****'.lstrip('*'))print('**sss*** ...
- Go 学习笔记(47)— Go 标准库之 strconv(string/int 互相转换、Parse 字符串转换为指定类型、Format 指定类型格式化为字符串)
参考: http://c.biancheng.net/view/5112.html 在实际开发中我们往往需要对一些常用的数据类型进行转换,如 string . int . int64 . float ...
- MySQL 学习笔记(12)— 数据类型(定长字符、变长字符、字符串大对象、数字类型、日期时间类型、二进制类型)
MySQL 常见的数据类型有字符串类型.数字类型.时间类型.二进制类型.具体的分类如下图: 1. 字符串类型 字符串类型用于存储字符和字符串数据,主要包含三种具体的类型:定长字符串.变长字符串以及字符 ...
- java double转换符_java中字符串怎么转换成double类型
展开全部 public class Demo { public static void main(String[] args) { Demo demo = new Demo(); String str ...
- [译]ElasticSearch数据类型--string类型已死, 字符串数据永生
原文链接: https://www.elastic.co/blog/s... Text vs. keyword 随着ElasticSearch 5.0的到来, 同时也迎来了该版本的重大特性之一: 移除 ...
- 日期类型存储成字符串类型的格式问题
问题 ConversionException: Could not convert '2017-8-28 0:00:00' to java.util.Date at com.vaadin.data.u ...
- 字符串和整形、浮点类型的相互转化
字符串转化为整形.浮点类 String str = "1"; float f = Float.parseFloat(s); double d = Double.parseDoubl ...
- qt 16进制字符串和十六进制数_Python字符串类型及其操作
Hello,it's always me! 上次我们讲述了字符串的格式化输出槽位{}+format()用法,深得好评(我自己的),这次我们来讲述字符串的基本用法及相关函数. --1-- 字符串的访问 ...
最新文章
- HTML5API(2)
- 一个程序员的小笑话.(纯属虚构)
- Qt Creator使用Clang工具
- 内存的静态分配和动态分配的区别【转】
- 有了它,Python编码再也不为字符集问题而发愁了!
- 拳王虚拟项目公社:说一个合法正规兼职创业,副业虚拟资源项目
- 麒麟9000芯片的库存真就是个迷
- 【编译原理笔记17】代码优化:数据流分析,到达定值分析,到达定值方程的计算
- 【MyBatis框架】mybatis入门
- 2022年 1月 windows 新型勒索病毒 360Crypt将全部文件后缀改为.360 2022年最新传播勒索病毒
- Windows 8 开发者预览版下载及简体中文语言包下载
- Apizza-绑定数据模型
- 丰收互联蓝牙key怎么开机_蓝牙UKEY使用说明
- 用 pyecharts 制作数据可视化大屏之数据地图
- 微信分享之分享图片/分享图标不能显示
- iphone文件服务器权限,苹果手机怎么开启文件共享权限
- Crossbar正式进入中国存储市场
- 原生javascript的账号密码登录验证
- 从虚拟光驱启动计算机,手把手教你使用win10/win8自带的”虚拟光驱“(资源管理器)挂载打开ISO镜像文件-系统操作与应用
-亦是美网络...
- 【NOIP2016】bzoj4719 天天爱跑步
热门文章
- python名片管理系统视频_python视频学习笔记6(名片管理系统开发)
- java object转map_Java反序列化学习之CommonsCollections1
- 什么是 SAP Spartacus FacadeFactoryService 中的 Resolver
- 使用浏览器的 Local Storage 真的安全吗?
- SAP Spartacus lazy load module 里包含了被其他 Component 静态引用的组件该怎么办
- 如何在 SAP BTP 上 手动执行 workflow
- SAP Spartacus lock focus directive如何判断有没有focusable children
- Gradle 任务访问文件的几种方式
- GM6 pageset - DB get scenario
- SAP CRM代码对数据库表COMM_PRODUCT的读写访问情况明细统计