php学习笔记之字符串常见操作总结


Posted in PHP onJuly 16, 2019

本文实例讲述了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
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
Windows下部署Apache+PHP+MySQL运行环境实战
Aug 31 PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
Sep 10 PHP
Yii实现多按钮保存与提交的方法
Dec 03 PHP
PHP多维数组转一维数组的简单实现方法
Dec 23 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
php事务回滚简单实现方法示例
Mar 28 PHP
在php的yii2框架中整合hbase库的方法
Sep 20 PHP
PHP实现微信商户支付企业付款到零钱功能
Sep 30 PHP
laravel 框架实现无限级分类的方法示例
Oct 31 PHP
CI框架简单分页类用法示例
Jun 06 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
Jul 15 #PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
Jul 12 #PHP
php array_chunk()函数用法与注意事项
Jul 12 #PHP
laravel框架中间件 except 和 only 的用法示例
Jul 12 #PHP
Laravel框架实现多数据库连接操作详解
Jul 12 #PHP
php遍历目录下文件并按修改时间排序操作示例
Jul 12 #PHP
微信推送功能实现方式图文详解
Jul 12 #PHP
You might like
PHP开发大型项目的一点经验
2006/10/09 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
2020/07/21 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
用Python实现BP神经网络(附代码)
2019/07/10 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
vue常用指令代码实例总结
2020/03/16 Python
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
2016/05/09 HTML / CSS
css3旋转木马_动力节点Java学院整理
2017/07/12 HTML / CSS
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
会计专业毕业生推荐信
2013/11/05 职场文书
实习生的自我评价
2014/01/08 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
国博复兴之路观后感
2015/06/02 职场文书
小学见习报告
2015/06/23 职场文书
感谢师恩主题班会
2015/08/17 职场文书
golang生成vcf通讯录格式文件详情
2022/03/25 Golang
使用scrapy实现增量式爬取方式
2022/06/21 Python