php学习笔记之字符串常见操作总结
本文实例讲述了php字符串常见操作。分享给大家供大家参考,具体如下:
字符串的定义
可以用单引号或双引号来定义字符串
<?php
$str = "hello";
$str = 'hello';
?
heredoc和nowdoc定义大段字符串
区别:和单引号与双引号定义字符串的区别相同
<?php
//heredoc的使用
$str3 = <<<MARK
hello
world!
ok;$a
puzhong!
MARK;
echo $str3."<br/ ";
//nowdoc的使用
$str4 = <<<'MARK'
hello
world!
ok;$a
puzhong!
MARK;
echo $str4."<br/ ";
?
单引号和双引号的区别
1)转义区别:单引号转义情况:\、’,其他全部原样输出 双引号转义情况:,、”、n、r、t等
2)速度区别:单引号中不能加载变量,而双引号中可以加载变量 速度上,单引号要快于双引号
字符串的常用函数
1)计算字符串的长度 strlen():按照字符串占用的字节数来计算长度 mb_strlen():按照编码来计算字符串的长度
<?php
$str = "hello";
$str2 = "中国123";
echo strlen($str)."<br/ "; //输出5
echo strlen($str2)."<br/ ";//输出9,utf8字符编码一个汉字占3个字节
echo mb_strlen($str2,"utf-8")."<br/ ";//输出5,按照u8编码,计算字符的长度
?
2)计算子字符串的位置函数
strpos():区分大小写进行查找子串首次的出现的位置 stripos():不分区大小写进行查找子串首次出现的位置 strrpos():区分大小写进行查找子串最后一次的出现的位置 strripos():不区分大小写进行查找子串最后一次的出现的位置
<?php
$str = "aAbBcdefgAa";
$char = "A";
echo strpos($str, $char)."<br/ ";//输出1,区分大小写
echo stripos($str,$char)."<br/ ";//输出0,不区分大小写
echo strrpos($str,$char)."<br/ ";//输出9,区分大小写
echo strripos($str, $char)."<br/ ";输出10,//不区分大小写
?
3)替换字符串函数
str_replace():区分大小写替换字符串中的内容 str_ireplace():不分区大小写替换字符串中的内容 strtr():成批地进行替换(可以使用数组的某种对应关系) substr_replace():按照字符串的位置和指定的长度来替换字符串中的内容
<?php
$str = "hi,Fuck";
echo str_replace("fuck","f**k",$str)."<br/ ";//输出:hi,Fuck,区分大小写,所以没有找到要替换的内容
echo str_ireplace("fuck", "f**k", $str)."<br/ ";//输出:hi,f**k,不区分大小写
$str = "男人,女人,男孩,女孩";
echo strtr($str, array("男"= "女","女"= "男"));//输出:女人,男人,女孩,男孩
$str = "hello,webbc,welcome";
echo substr_replace($str,"webxx",6,5);//输出:hello,webxx,welcome
?
4)截取子字符串函数
substr():按照起始位置和指定长度来截取字符串
<?php
$str = "hello,webbc,welcome!";
echo substr($str,6,5)."<br/ ";//输出:webbc
echo substr($str,6,-1)."<br/ ";//输出:webbc,welcome,负数表示结束位置从后往前数
echo substr($str,-8,-1);//输出:welcome,负数表示起始位置从后往前数
?
5)合并/拆分字符串
explode():将字符串按照某个字符拆分成数组 implode():将数组按照某个字符合并成字符串
<?php
$str = "勇士,马刺,雷霆,快船,开拓者,小牛,灰熊,火箭";
$arr = explode(",",$str);
var_dump($arr);
/*
输出:array
0 = string '勇士' (length=6)
1 = string '马刺' (length=6)
2 = string '雷霆' (length=6)
3 = string '快船' (length=6)
4 = string '开拓者' (length=9)
5 = string '小牛' (length=6)
6 = string '灰熊' (length=6)
7 = string '火箭' (length=6)
*/
echo implode($arr,"-");//输出:勇士-马刺-雷霆-快船-开拓者-小牛-灰熊-火箭
?
6)处理空格
ltrim():删除左导空格 rtrim():删除右导空格 trim():删除左导和右导空格
<?php
$str = " hello world ";
echo ltrim($str)."a"."<br/ ";//输出:hello world a
echo "a".rtrim($str)."<br/ ";//输出:a hello world
echo trim($str)."<br/ ";//输出:hello world
?
7)字符串转义函数
addslashes():对特殊字符进行转义 stripslashes():将转义过的字符还原
<?php
$str = "Is your ' name O'reilly?";
$a = addslashes($str);
echo $a;//输出:Is your ' name O'reilly?
echo stripslashes($a);//输出:Is your ' name O'reilly?
8)HTML和字符串的转换
htmlspecialchars():将字符串转换成HTML实体 htmlspecialchars_decode():将HTML实体转换成字符串
<?php
$str = "<b 我是加粗 字体</b ";
echo $str; //输出:我是加粗 字体
$htmlstr = htmlspecialchars($str);
echo $htmlstr;//输出:<b 我是加粗 字体</b
echo htmlspecialchars_decode($htmlstr);//输出:我是加粗 字体
?
9)检索字符串
strstr():查找字符串的首次出现 substr_count():计算字串出现的次数
<?php
$str = 'name@example.com';
echo strstr($str, '@'); //输出:@example.com
$str = 'This is a test';
echo substr_count($str, 'is'); //输出:2
?
10)字符串的转换函数
strtolower():全部转换为小写 strtoupper():全部转换为大写 ucfirst():将字符串的首字母转换为大写 ucwords():将字符串的每个单词的首字母大写
<?php
$str = "i haVe a Dream";
echo strtolower($str)."<br/ ";//输出:i have a dream
echo strtoupper($str)."<br/ ";//输出:I HAVE A DREAM
echo ucfirst($str)."<br/ ";//输出:I haVe a Dream
echo ucwords($str)."<br/ ";//输出:I HaVe A Dream
?
- MySQL service启动脚本浅析(r12笔记第59天)
- 分享WordPress显示评论者IP的归属地及运营商信息的2种方案
- 解决dos2unix/unix2dos报错,并在家目录下生成u2dtmp*文件问题
- 【前沿】TensorFlow Pytorch Keras代码实现深度学习大神Hinton NIPS2017 Capsule论文
- Nginx通过二级目录(路径)映射不同的反向代理,规避IP+端口访问
- MySQL中批量初始化数据的对比测试(r12笔记第71天)
- Golang语言--包的概念、导入与可见性
- MySQL中的change,modify和自增列的关系(r12笔记第70天)
- Golang 值得注意的地方
- MySQL数值类型在binlog中需要注意的细节(r12笔记第69天)
- WordPress评论滑动/拉链解锁myQaptcha修改为自动提交的方法
- MySQL root用户登录的几个小问题(r12笔记第67天)
- Java实现生产者消费者的两种方式(r12笔记第66天)
- Golang语言的函数调用信息
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Android view随触碰滑动效果
- TextView使用SpannableString设置复合文本 SpannableString实现TextView的链接效果
- FragmentTabHost使用方法详解
- Android编程实现仿优酷圆盘旋转菜单效果的方法详解【附demo源码下载】
- Android绘制圆形百分比加载圈效果
- Android自定义view实现动态柱状图
- Kubernetes集群高可用&备份还原概述 | 知识分享月第三期直播回顾
- SpringCloud2020 学习笔记(一)springboot和springcloud技术选型以及版本选择
- SpringCloud2020 学习笔记(二)父工程搭建
- SpringCloud2020 学习笔记(三) cloud-api-commons通用模块搭建
- SpringCloud2020 学习笔记(四) cloud-provider-payment8001支付模块
- SpringCloud2020 学习笔记(五)cloud-consumer-order80 消费者订单模块
- SpringCloud2020 学习笔记(六)如何开启idea中的Run DashBoard or Services
- SpringCloud2020 学习笔记(七)cloud-eureka-server7001 EurekaServer服务端安装
- SpringCloud2020 学习笔记(八)cloud-provider-payment8001支付模块入驻eurekaServer注册中心