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之 处理字符串的内置函数的更多相关文章

  1. 2.9高级变量类型操作(列表 * 元组 * 字典 * 字符串)_内置函数_切片_运算符_for循环

    高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...

  2. set、def、lambda、内置函数、文件操作

    set : 无序,不重复,可以嵌套 .add (添加元素) .update(接收可迭代对象)---等于批量 添加 .diffrents()两个集合不同差 .sysmmetric difference( ...

  3. Freemarker 内置函数 数字、字符串、日期格式化用法介绍

    在用FreeMarker过程中,感觉FreeMarker的字符串,日期,集合等处理能力还是很强大的,上网搜了一些资料,整理如下,以便能帮助大家更熟练的应用Freemarker完成项目开发. 一.Seq ...

  4. python基础(内置函数+文件操作+lambda)

    一.内置函数 注:查看详细猛击这里 常用内置函数代码说明: # abs绝对值 # i = abs(-123) # print(i) #返回123,绝对值 # #all,循环参数,如果每个元素为真,那么 ...

  5. lambda表达式、内置函数、进制和文件操作

    lambda表达式 定义函数(普通方式)def f1(): return 123 f2 = lambda : 123 def f3(a1,a2): return a1+a2 定义函数(lambda表达 ...

  6. 第三天 函数 三元运算 lambda表达式 内置函数 文件操作

    面向过程: 直接一行一行写代码,遇到重复的内容复制黏贴. 不利于代码阅读 代码没有复用 面向对象 将代码块定义为函数,以后直接调用函数 增强了复用性 函数的定义方法 def 函数名(传递参数): 函数 ...

  7. python的文件操作file:(内置函数,如seek、truncate函数)

    file打开文件有两种方式,函数用file()或者open().打开后读入文件的内容用read()函数,其读入是从文件当前指针位置开始,所以需要控制指针位置用: 一.先介绍下file读入的控制函数: ...

  8. Python数据类型的内置函数之str(字符串)

    Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) str(字符串)的一些操作 - 字符串相连方法 # 字符串的 ...

  9. python匿名函数 高阶函数 内置函数 文件操作

    1.匿名函数 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用 ...

  10. Python全栈开发之4、内置函数、文件操作和递归

    转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5476760.html 一.内置函数 Python的内置函数有许多,下面的这张图全部列举出来了,然后我会把一些常用的拿 ...

随机推荐

  1. IDEA科学使用

    今天莫名激活码又用不起了有能力的支持正版吧 ,要用的时候又去网上到处找然后发现各种用不了,去淘宝又怕被骗博主就是过来人 ,总算下定决心写一篇一劳永逸的方法.. 方法一:合理使用激活码 用过idea的都 ...

  2. Extreme Learning Machine

    Extreme Learning Machine 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. ELM 2004年南洋理工大学黄广斌提出了ELM ...

  3. 【Unity|C#】基础篇(12)——反射(Reflection)(核心类:Type、Assembly)

    [学习资料] <C#图解教程>(第24章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...

  4. ArrayList、LinkedList区别(jdk8)

    /** * jdk8 * ArrayList:底层动态数组实现(未初始化指定数组长度) * add():添加元素时,才初始化数组长度为10.容量不够时,动态扩容策略为: 原容量 + 原容量*0.5 * ...

  5. Dijkstra算法依据项目改进版,输出路径

    package dijkstra; import java.util.ArrayList; public class Dijkstra { ; /*private static int[][] Gra ...

  6. 我的python笔记05

    Python 之路 Day5 - 常用模块学习 本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve ...

  7. (转)HashMap和HashTable源码

    转自: http://www.cnblogs.com/ITtangtang/p/3948406.html http://frankfan915.iteye.com/blog/1152091 一.Has ...

  8. 开发过程中遇到的代理Proxy配置问题

    proxy代理问题 在公司不能访问外网的时候,使用IDEA开发.. 需要配置IDEA Proxy Maven Git IDEA开发工具Proxy配置,使用Spring Boot快读构建工具 Maven ...

  9. redis分布式锁在springboot中的实现

    理论知识   redis分布式锁的实现方案请参考文章 如何优雅地用redis实现分布式锁 本案例简介   以秒杀活动为例子,在多线程高并发的情况下需要保证秒杀业务的线程安全性,确保秒杀记录与所扣库存数 ...

  10. 2020牛客寒假算法基础集训营3 G.牛牛的Link Power II (树状数组维护前缀和)

    https://ac.nowcoder.com/acm/contest/3004/G 发现每个“1”对于它本身位置产生的影响贡献为0,对前面的“1”有产生贡献,对后面的"1"也产生 ...