PHP字符串处理
/*1 字符串格式化 */
$str = ' php ';
//清理两边的空格trim();,左边ltrim(); 边rtrin()
echo trim($str); //nl2br();将换行符\n换成<br />
//在发帖时一个回车就是\n,无法换成<br />
$str = "this is a student!\n this is a new!";
echo nl2br($str); //将所有字符串转换成HTML
$str = "<strong>党兴明</strong>";
echo htmlentities($str); //全部转换,中文名字也会转换,用的不多
echo htmlspecialchars($str); //只转换特殊的,标签会,内部中文不会
echo strip_tags($str); //将标签去掉 //addslashes();
$str = 'this is a teach. his is a "lee",\n this is a dang';
//对于即将插入数据库的字符串,把有问题的字符处理一下,在引号前加\
echo addslashes($str);
//如果从数据库拿出来,去掉\
echo stripslashes($str); //重新格式化大小写
strtoupper()函数将字符串转换为大写
strtolower()函数将字符串转换成小写
ucfirst()函数将第一个字母转换为大写
ucwords()函数将每个单词第一个字母转换为大写
转大写
echo strtoupper('dang xing ming'); 填充str_pad()将字符串用指定个数的字符填充字符串。
$str = 'lee';
echo str_pad($str, 10).'is good!'; //str后面将有7个空格来填充来满足10个的制定个数,体现在源代码里
echo str_pad($str, 10,'#',STR_PAD_RIGHT);//指定填充字符和填充方向,STR_PAD_BOTH,两个方向 /*2 操作字符串 */
//切割字符串
$email = explode('@','yc60.com@gmail.com');//按@切割字符串,是个数组
print_r($email);
组合起来:经过操作后再组合起来
$arr = array('lee','dang','haha');
$str = implode('$', $arr);
print_r($str);
对于英文,strtok()函数一次只从字符串取出一些片段(称为令牌)。对于一次从字符串中取出一个单词的处理来说,strtok()函数比explode()函数的效果更好。
$str = 'i,will#be.back';
$sok = strtok($str, ',#.');
while (!!$sok){
echo $sok.'<br />';
$sok = strtok(',#.'); //它会记住切割$str,不要重新传字符串
} //substr();取一部分字符串
$str = 'yc60.com@gmail.com';
echo substr($str, 1,5); //从第一个位置取5个,第一个字母是0位置 分解字符串:str_split();一个一个字节拆开,中文不行,一个会中文两个字节
$str = 'this is a';
print_r(str_split($str)); 逆置字符串:strrev()可以将一个字符串逆反过来。
echo strrev($str); /*3 字符串比较 */ //==比较相等,返回布尔值
echo 'a' == 'a'; //1 //strcmp();比较两个字符串,0相等,-1小于,1大于
echo strcmp('a','b');
//不区分大小写
echo strcasecmp('a', 'A');
//非自然排序
echo strcmp('2','10'); //1
//自然排序
echo strnatcmp('2', '10'); //-1 //strspn();返回一个字符串中包含有另一个字符串中字符的第一部分的长度。求两个字符串之间相同的部分。
echo strspn('gsmail','yc60.com@gmail.com',2,10); //从第0位取2位,指第一个字符串 //strlen();字符串长度 //substr_count();出现频率
echo substr_count('yc60.com@gmail.com','c'); // /*4 查找替换字符串 */ // //查找字符串
//strstr();从指定的字符串开始输出之后的字符串
echo strstr('yc60.com@gmail.com','@');//gmail.com
//不区分大小写stristr();
echo stristr('yc60.com@Gmail.com','g');//Gmail.com
//strchr();strstr()的别名,用途一样 // //查找某字符串最先出现的位置
//现在的PHP手册建议使用strpos()函数代替strstr()函数来查看一个子字符串在一个字符串中出现的位置,因为前者的运行速度更快。
echo strpos('yc60.com@gmail.com',c); //1,从0开始计算
//最后出现的位置
echo strrpos('yc60.com@gmail.com', c);//15 // //替换字符串
echo str_replace('lee','dang','this is lee');//在第三个参数里找到第一个参数替换成第二个参数
echo str_ireplace('lee','dang','this is Lee');//不区分大小写
echo substr_replace('this is lee','$$$',0,5);//从第一个位置开始,取出5个,替换成$$$ /*5 处理中文字符串 */
// 中文字符可以是gbk,utf8,gb2312
// mb_strlen() 对应的函数为 strlen() 求字符串的长度
// mb_strstr() 对应的函数为 strstr() 求某字符串到结尾的字符
// mb_strpos() 对应的函数为 strpos() 求出字符最先出现处
// mb_substr() 对应的函数为 substr() 取出指定的字符串
// mb_substr_count() 对应函数为 substr_str() 返回字符串出现的次数 // //字符串长度
$str = '我是党兴明';
echo strlen($str); //15,utf8三个,gbk两个
echo mb_strlen($str,'utf8'); //5 //求党到结尾的字符串
echo mb_strstr($str,'党'); //党兴明
//最想出现的位置
echo mb_strpos($str, '兴'); //3
//从第二个取两个
echo mb_substr($str,1,2); //是党
//返回字符串出现的次数
echo mb_substr_count($str, '党');//
PHP字符串处理的更多相关文章
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率
之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...
- java中的字符串相关知识整理
字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...
- JavaScript 字符串实用常操纪要
JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- Redis的简单动态字符串实现
Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,sds)的抽象类 ...
- ASP.NET加密和解密数据库连接字符串
大家知道,在应用程序中进行数据库操作需要连接字符串,而如果没有连接字符串,我们就无法在应用程序中完成检索数据,创建数据等一系列的数据库操作.当有人想要获取你程序中的数据库信息,他首先看到的可能会是We ...
- Javascript正则对象方法与字符串正则方法总结
正则对象 var reg = new Regexp('abc','gi') var reg = /abc/ig 正则方法 test方法(测试某个字符串是否匹配) var str = 'abc123'; ...
- 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)
转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...
- ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...
随机推荐
- Xcode调试技巧(断点和重构)
首先是最简单的普通断点有时候不知道是那个方法调用的崩溃的这个方法,传了个奇怪的值,打个断点就就可以在左侧工具栏里看到最近几个方法执行的循序,和那个方法调用的本方法,一般小问题在这里就可以解决啦~ 条件 ...
- 【BZOJ 3642】Phi的反函数
http://www.lydsy.com/JudgeOnline/problem.php?id=3643 因为\[\varphi(n)=\prod_i p_i^{k_i-1}(p_i-1),n=\pr ...
- python基于Django框架编译报错“django.core.exceptions.ImproperlyConfigured”的解决办法?
下面是我具体遇到的问题和解决方法: 错误详细信息: django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_IND ...
- 数据结构图文解析之:数组、单链表、双链表介绍及C++模板实现
0. 数据结构图文解析系列 数据结构系列文章 数据结构图文解析之:数组.单链表.双链表介绍及C++模板实现 数据结构图文解析之:栈的简介及C++模板实现 数据结构图文解析之:队列详解与C++模板实现 ...
- 【Beta】第5.5次任务发布
PM #100 日常管理&dev版宣传&设计报告管理后台. 后端 #101 完成收藏功能 完成管理员权限表的生成和接入(按位压缩权限表) 验收条件:收藏功能能够正常使用.能够区分常规用 ...
- 面试web前端开发,被打击了
今天我去面试web前端开发,被打击了,也跟我也有一定的关系,最基础的东西我都没回答好,哎! 主要是我在等我有意向的公司给我发offer,闲着没事,刚好又有公司叫我去面试,我抱着多面一家也没有啥子坏处就 ...
- grunt安装和使用教程
grunt的安装 npm intall -g grunt-cli 新建文件夹grunt,在本地文件中添加package.json和Gruntfile.js文件,其中package.json文件的配置如 ...
- 【转】 解读EOF
解读EOF 标签: fplinuxc语言filestream 2012-01-31 22:05 439人阅读 评论(0) 收藏 举报 分类: C.C++_程序设计(20) 我学习C语言的时候,遇到 ...
- phpcms v9图片生成缩略图变成黑色解决方法
今天客户反映,上传的图片生成缩略图有的图片变成黑色,出现问题就百度了一下,有不少网友也遇到这样的问题,但是官方论坛也没有给出解决办法,那还得靠自己解决了,于是就研究phpcms v9 图片压缩代码.打 ...
- php 301 重定向 转自http://www.icoa.cn/a/475.html
内容简介 有时候我们的有多个域名指向同一个网站,或者我们更换了网站的网址,那么怎么样将原来网站的流量导入到新网址中呢,那么我们可以用301重定向的方式,而且这种方式是对搜索引擎比较友好的方式.如果首页 ...