php对字符串的操作2之 处理字符串的内置函数
1,获取字串:substr($str,$start,$length)
mb_substr($str,$start,$length,'utf-8'); 更换为utf8编码,能准确的截取中文
<?php
$email = 'clinqxia@qq.com';
echo '原始字符串:'.$email; echo '<hr>';
//从0角标开始,获取7个字符
echo substr($email,0,7);echo '<hr>';
//-3:负数表示从末尾往前数
echo substr($email,-3,3);echo '<hr>';
?>

2,替换字符串:substr_replace()
<?php
$email = 'clinqxia@qq.com';
echo '原始字符串:'.$email; echo '<hr>';
//注意,从负数和正数不同,负数是从-1开始数,正数从0开始
echo substr_replace($email,'163',9,2);echo '<hr>';
echo substr_replace($email,'cn',-3,3);echo '<hr>'; //将字串长度设置为0,实现无删除的插入
echo substr_replace($email,'_zhu',8,0);echo '<hr>';
//设置空字串,是实现插入式的删除
echo substr_replace($email, '', 0,4);echo '<hr>';
//在起始位置插入字符
echo substr_replace($email, '我的邮箱:', 0,0);echo '<hr>';
?>

3,substr_count():查询字串出现的频率(次数)
<?php
$email = 'My blog name is cl94,welcome to my blog';
echo '原始字符串:'.$email; echo '<hr>';
echo substr_count($email,'blog',0,10); echo '<hr>';
?>

4,substr_compare($str,$str1,startpos):比较字串
<?php
$str1 = 'My blog name is cl94,welcome to my blog';
$str2 = 'My blog';
//startpos:规定在 string1 中的何处开始比较。如果为负数,则从字符串末端开始计数。
//返回结果 (0:相等;<0:$str1<$str2; >0:$str1>$str2);
//比较的是ascii值
echo substr_compare($str1, $str2,0); echo '<hr>'; echo substr_compare($str1, $str2,0,7);echo '<hr>'; ?>

5,strlen():得到字符串的长度
<?php
$str1 = 'China';
$str2 = '中国'; echo strlen($str1); echo '<hr>';
//strlen()无法正确处理中文字符串,它得到的只是字符串所占的字节数
echo strlen($str2);echo '<hr>';
//我们可以用mb_来指定编码以针对正文
echo mb_strlen($str2,'utf-8'); ?>

6,strpos():获取子串的位置,字串检索函数,根据内容查找索引
<?php $str1 = 'adaad fwwr<h2>这里是我们要获取的有效字串</h2>d2asasdaqr';
//返回字串的索引
echo $start = strpos($str1,'<h2>',0); echo '<hr>';
echo $end = strpos($str1,'</h2>',0); echo '<hr>';
//这个可以用作爬虫
echo substr($str1,$start+4,$end-($start+4));
?>

7,strstr($str1,$str2):查找子串匹配位置后的所有字符
<?php $str1 = '我是小跳蛙'; echo strstr($str1,'小'); echo '<hr>';
//反向取
echo strstr($str1,'小',true);
?>

8,字符串替换函数
<?php $email = 'chenglin@163.com';
echo $email;echo '<hr>';
echo str_replace('163','qq',$email);echo '<hr>'; //将参数变成数组进行替换
$hobby = '我最喜欢吃苹果、香蕉、桃子';
echo $hobby;echo '<hr>';
$rep1 = ['苹果','香蕉','桃子'];
$rep2 = ['木瓜','菠萝','榴莲'];
echo $hobby = str_replace($rep1,$rep2,$hobby);echo '<hr>'; $url = 'c://demo/index.php';
echo str_replace('/','\\',$url);
?>

9,explode():字符串的分割
implode():将数组组合成字符串
<?php
//字符串的分割
$path = 'C://www/blog/index.php';
dump(explode('/',$path));echo '<hr>'; //字符串的组合
$city = implode('--',['合肥','芜湖','安庆','六安']);
if(is_string($city)){
echo $city;
}
?>

应用
<?php
//判断a字符串是否以b字符串开头
//用到strpos()函数
$a = '上海交通大学';
if(strpos($a,'上海',0)===0){
echo '$a以上海开头';echo '<hr>';
} //判断a字符串是否以b字符串结束
//用到substr_compare()函数、strlen()函数
if(substr_compare($a,'大学',-strlen('大学'))===0){
echo '$a以大学结束';
}
?>
php对字符串的操作2之 处理字符串的内置函数的更多相关文章
- 2.9高级变量类型操作(列表 * 元组 * 字典 * 字符串)_内置函数_切片_运算符_for循环
高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...
- set、def、lambda、内置函数、文件操作
set : 无序,不重复,可以嵌套 .add (添加元素) .update(接收可迭代对象)---等于批量 添加 .diffrents()两个集合不同差 .sysmmetric difference( ...
- Freemarker 内置函数 数字、字符串、日期格式化用法介绍
在用FreeMarker过程中,感觉FreeMarker的字符串,日期,集合等处理能力还是很强大的,上网搜了一些资料,整理如下,以便能帮助大家更熟练的应用Freemarker完成项目开发. 一.Seq ...
- python基础(内置函数+文件操作+lambda)
一.内置函数 注:查看详细猛击这里 常用内置函数代码说明: # abs绝对值 # i = abs(-123) # print(i) #返回123,绝对值 # #all,循环参数,如果每个元素为真,那么 ...
- lambda表达式、内置函数、进制和文件操作
lambda表达式 定义函数(普通方式)def f1(): return 123 f2 = lambda : 123 def f3(a1,a2): return a1+a2 定义函数(lambda表达 ...
- 第三天 函数 三元运算 lambda表达式 内置函数 文件操作
面向过程: 直接一行一行写代码,遇到重复的内容复制黏贴. 不利于代码阅读 代码没有复用 面向对象 将代码块定义为函数,以后直接调用函数 增强了复用性 函数的定义方法 def 函数名(传递参数): 函数 ...
- python的文件操作file:(内置函数,如seek、truncate函数)
file打开文件有两种方式,函数用file()或者open().打开后读入文件的内容用read()函数,其读入是从文件当前指针位置开始,所以需要控制指针位置用: 一.先介绍下file读入的控制函数: ...
- Python数据类型的内置函数之str(字符串)
Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) str(字符串)的一些操作 - 字符串相连方法 # 字符串的 ...
- python匿名函数 高阶函数 内置函数 文件操作
1.匿名函数 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用 ...
- Python全栈开发之4、内置函数、文件操作和递归
转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5476760.html 一.内置函数 Python的内置函数有许多,下面的这张图全部列举出来了,然后我会把一些常用的拿 ...
随机推荐
- 在Spring中使用嵌入式数据库-H2
Spring3以后开始支持嵌入式数据库,嵌入式数据库目前在市面上有好多种,HSQL,DERBY,H2...今天就主要讲一下h2的使用 对于一个数据库产品来说,主要就是如何存储数据和读取数据了.所谓嵌入 ...
- Dubbo服务暴露分析
Dubbo的服务暴露是一个重要的特性,了解其机制很重要.之前有很多人写了有关的源代码分析,在本文中不再重新分析.官方文档中的一篇写的就很好,本文主要是有关内容进行补充与总结. 传送门:服务导出 为什么 ...
- jQuery---基本的选择器
基本选择器 名称 用法 描述 ID选择器 $(“#id”); 获取指定ID的元素 类选择器 $(“.class”); 获取同一类class的元素 标签选择器 $(“div”); 获取同一类标签的所有元 ...
- 请求 - axios
实际应用示例 前端不需要做统一的接口防重 前端无法通过判断接口是否返回来释放按钮(因为可以手动刷新页面,将导致刷新前请求丢失) 后端对接口做了防重 通过增加时间戳避免IE9的get请求缓存问题 axi ...
- javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
这个错误的原因是没有项目使用到了Tomcat中配置的数据源(但是你本地没有配置),关于什么是JNDI看这篇文章就够了® 今天导入一个项目(比较老的),在本地运行时报错: Cannot resolve ...
- 324. 摆动排序 II(三路划分算法)
题目: 给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序. 示例 1: 输入: nums = [ ...
- Qt程序异常结束,The process was ended forcefully....
我用的Qt版本是5.9.6,运行了好几次程序都妥妥当当的,然后就被安排上了...出现如下错误: 也是刚入手Qt不久,出现这样的错误我以为是代码的问题,然后撤销一些代码发现还是这样的错,索性就关闭Qt然 ...
- 插件与App的跳转,及路由的关系
在SDK中 无法直接跳App 的界面,这个时候需要使用 路由,或者通过 NSClassFromString 的 presentViewController 来跳转. 直接贴代码: UIViewCont ...
- MySQL数据库重点监控指标
MySQL数据库重点监控指标 QPS queries per seconds 每秒中查询数量 show global status like 'Question%'; Queries/seconds ...
- 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)
我没有实现时间复杂度为O(n)的算法. 思路:从第一数开始,onelist[0]:onelist[0]+onelist[1]:这样依次推算出每个子数组的sum值.和max进行比较.最后得到max值. ...