当前位置: 首页 > 编程日记 > 正文

php字符串操作

1.字符串的格式化

按照从表单提交数据之后,php处理的不同:接受,显示,存储。也有三种类型的格式化方法。

1.1字符串的接收之后的整理: trim(),ltrim(),rtrim()

当数据从表单中上传上来的时候需要对字符串整理一下,去掉字符串前后的空格或者其他字符。
** trim()就是去掉字符串前后的空格、制表符、换行符等等。
ltrim()去掉左边的,就是清理开头那一端
rtrim()**去掉右边的,就是结尾那一端的
$name = trim($_POST['name']);

1.2格式化字符串以便显示

** 1.使用HTML格式化:nl2br()**
接收字符串作为参数,将字符串中的换行符更改为HTML中的
,便于在网站页面中显示
** 2.改变字符串中的字母大小写**
** strtoupper()将字符串转换为大写
stroutlower将字符串转换为小写
ucfirst()如果字符串的第一个字符是字母,就将该字符大写
ucwords将字符串中的每个单词的第一个字母转换为大写
3.格式化字符串以便存储:addslashes()**
数据库有时候会把字符串李米娜的引号,反斜杠,NULL字符当做是控制字符,这样会导致向数据库中存储数据失败。这种情况可以使用转义符来转义,也可以使用我们的转义字符串的函数
例如使用addslashes()函数:
$feedback = addslashes(trim($_POST['feedback']));

2.字符串的链接和分割

我们会经常从字符串中提取出想要的字符串,以及添加一些字符串。以下就是一些常用的方法函数
** 2.1使用函数explode()、implode()、join()**
** explode()接收两个参数,是按照给出的分隔符来分割字符串,并将结果返回到一个数字索引型的字符串里面。还有一个可选参数是用来限制分成字符串小块的数量
~php
$email = ghoaishg@163.com;
$email_array = explode('@', $email);
~
$email_array就是一个数字索引型的字符串,可以通过索引获得自己想要的。
implode()和join()的作用和explode()完全相反,是从数组中获取数组元素来组成一个新的字符串。接收的第一个参数是你想要用来连接这些元素的分割符,第二个参数是一个数组操作对象,返回结果是一个字符串
2.2使用strtok()函数**
同explode()的方法差不多,将字符串按照给定的分隔符来分割,不同之处在于srttok()函数每次只会返回被分隔的一部分,一般可以跟while语句连用。这个函数的特点是每次只返回一个
2.3使用substr()函数
这个函数是用来截取字符串中的一部分长度的,接收两个参数分别是:需要操作的字符串和开始截取的位置。第三个参数是可选参数,用来限定截取的长度的。
第二个参数也可以是负数,负数表示从字符串的末尾向前数
substr($test, -9);

3.字符串的比较

3.1字符串的排序:strcmp(),strcasecmp(),strnatcmp()
这三个函数都是比较两个字符串大小的。来看函数原型
int strcmp(string str1, string str2);
接受两个参数,分别是str1和str2,按照字典的顺序进行比较,如果str1比str2大(即str1在str2后面)则返回1,相等返回0,这个函数区分大小写。
strcasecmp()用法相同,在strcmp()的基础上增加不再区分大小写。
strnatcmp()函数在strcasecmp()的基础上增加按照自然顺序比较,所以这个函数是不去分大小写,且按照人们的习惯进行排序的。
使用strlen()函数测试字符串的长度
这个函数可以用来测试数组的长度,也可以用来测试字符串的长度

4.使用字符串函数匹配和替换字符串

判别是否有特定字符串,并得到字符串的位置,还可以该字符串进行替换
4.1在字符串中查找字符串:strstr()、strchr()、strrchr()、stristr()
上面几个函数的作用是:在一个字符串中查找另一个字符串,php中strchr和strstr是完全一样的。
strstr()函数原型
string strstr(string str1,string needle);
接受两个参数,第一个是目标字符串,第二个是要查找的关键字。
返回第一个匹配的关键字,如果不存在就返回false.
该函数是区分大小写的,如果向不区分大小写,可以使用stristr()
strrchr用法相同,只不过会返回最后一个匹配的关键字。
4.2查找字符串的位置:strpos(),strrpos()
strpos的作用也是用来子一个字符串中查找关键字,但是却不是返回关键字,而是返回关键字开始的位置。函数原型如下:
int strpos(strinig haystack, string needle, int[offset]);
第一个参数是要被查找的字符串,第二个是关键字。第三个是可选的参数,表示从字符串的哪一个位置开始查找。
strrpos()用法相同,只不过返回的是最后一个匹配的位置。
4.3替换字符串:str_replace()、substr_replace()
这两个字符串的作用很大,可以将查找的字符串进行替换。
mixed str_replace(mixed needle, mixed new_needle, mixed haystack [, int & count]);
参数分别为:需要查找的关键字,用于替换的关键字,字符串操作对象,一个可选的操作次数
substr_replace()的作用是用关键字将字符串的指定位置给替换掉。
string substr_replace(string string ,string replacement, int start, int[length])
接受的参数为:字符串操作对象,需要替换的关键字,开始替换的位置和一个可选的参数为从开始到结束的长度。
4.4用正则表达式查找字符串:ereg()、eregi()
此函数是用正则表达式来查找字符串中查找,看看有没有匹配,函数原型为:
int ereg(string pattern, string search, array[matches]);
第一个参数是正则表达式,第二个是字符串操作对象,可选的第三个是用来保存保存匹配的字符串,因为经常会有好几个匹配。
eregi()函数跟上面是一样的,只是不再区分大小写。
4.5用正则表示达替换字符串
使用函数str_replace()函数
4.6使用正则表达式分割字符串
这个也是比较使用的功能,使用的是split()函数
array split(string pattern, string search[, int max]);
返回的结果是一个数组集合,第一个参数是正则表达式,第二个是字符串,第三个可选的是进入数组的个数。

转载于:https://www.cnblogs.com/cenyu/p/6528384.html

相关文章:

javascript事件列表解说

javascript事件列表解说事件浏览器支持解说一般事件onclickIE3、N2 鼠标点击时触发此事件ondblclickIE4、N4 鼠标双击时触发此事件onmousedownIE4、N4 按下鼠标时触发此事件onmouseupIE4、N4 鼠标按下后松开鼠标时触发此事件onmouseoverIE3、N2 当鼠标移动到某对象范围的上方时…

Facebook如何预测广告点击:剖析经典论文GBDT+LR

作者 | 梁唐来源 | TechFlow今天我们来剖析一篇经典的论文:Practial Lessons from Predicting Clicks on Ads at Facebook。从这篇paper的名称当中我们可以看得出来,这篇paper的作者是Facebook的广告团队。这是一篇将GBDT与LR模型结合应用在广告点击率预…

centos lustre 简单 安装教程

Lustre是一个大规模的、安全可靠的,具备高可用性的集群文件系统,它是由SUN公司开发和维护的。 该项目主要的目的就是开发下一代的集群文件系统,可以支持超过10000个节点,数以PB的数据量存储系统。 因为业务需要,需要做…

安装flash

网校客服124说: 2017-03-11 18:37:39网校客服124说: 2017-03-11 18:37:48您好,您可以安装这个插件试一下http://www.chinaacc.com/downcenter/网校客服124说: 2017-03-11 18:38:04下载后安装时请关闭所有的浏览器。我说: 2017-03-11 18:40:08转载于:https://blo…

左右漂浮的广告代码

引用JS文件的代码&#xff1a; <script language"javascript" src"****.js"></script> <---- var delta0.15 var collection; function floaters() { this.items []; this.addItem function(id,x,y,content) { document.wri…

韩辉:国产操作系统的最大难题在于解决“生产关系”

作者 | 高卫华编辑 | Just出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;操作系统是所有软件体系的基础&#xff0c;而随着中国物联网产业的迅猛发展&#xff0c;诸多国产嵌入式操作系统开始跃出水面。其中之一包括 SylixOS&#xff0c;这是一款由国内企…

java中运用label跳转

2019独角兽企业重金招聘Python工程师标准>>> goto是java的保留词&#xff0c;但java里并没有goto. goto可以随心所欲地在代码里跳转&#xff0c;看似很方便&#xff0c;但带来的代码混乱成为其被人诟病的原因。 然而有些时候必要的goto可以带来很大的方便。所以jav…

【转】超简单利用UGUI制作圆形小地图

http://sanwen.net/a/ithhtbo.html 由于UI都是Achor自己用PS做的&#xff0c;比较粗糙&#xff0c;大家见谅&#xff0c;不过丝毫不影响功能的实现&#xff0c;下面我们看看今天的笔记&#xff1a; 首先我们看看需要哪些组件&#xff1a; 1.在Canvas画布下新建一个GameObject&a…

Jmail的主要参数列表

说明&#xff1a;更多的信息请参考Jmail说明&#xff0c;我想这已经足够用的了。 &#xff08;1&#xff09;Body&#xff08;信件正文&#xff09; : 字符串如&#xff1a;JMail.Body "这里可以是用户填写的表单内容&#xff0c;可以取自From。" &#xff08;2&…

VMware VSphere 虚拟化云计算学习配置笔记(一)

第一章&#xff1a;VMware和VSphere 简单介绍 在VMware发布的vSphere 5.0中&#xff0c;VMware淘汰了ESX&#xff0c;ESXi成为了唯一的hypervisor。在ESXi 5.0中&#xff0c;VMware提供了七大重要的增强功能&#xff0c;包括&#xff1a;镜像生成器&#xff08;Image Builder&a…

“国产操作系统最大难题在于解决「生产关系」” | 人物志

作者 | 高卫华来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;操作系统是所有软件体系的基础&#xff0c;而随着中国物联网产业的迅猛发展&#xff0c;诸多国产嵌入式操作系统开始跃出水面。其中之一包括 SylixOS&#xff0c;这是一款由国内企业翼辉信息自主设计开…

详解 Vue Vuex 实践

2019独角兽企业重金招聘Python工程师标准>>> 随着应用复杂度的增加&#xff0c;我们需要考虑如何进行应用的状态管理&#xff0c;将业务逻辑与界面交互相剥离&#xff0c;详细讨论参考笔者的2016-我的前端之路:工具化与工程化。Vue 为我们提供了方便的组件内状态管理…

可控制的页面内滚动区域

效果预览 下面我们就来详细讲解一下这种效果的制作方法&#xff1a; 首先&#xff0c;我们在样式表里加入“.opacity {FILTER: alpha(opacity100)”&#xff0c;看下面&#xff01; <style type"text/css"><!--.opacity {FILTER: alpha(opacity100)}-->&…

提升对ASP.NET网站性能和多并发的设计的讨论

对于如何提高应用程序的性能&#xff08;无论是互联网应用还是企业级应用&#xff09;我的观点一直是考虑一个核心&#xff1a;IO处理。因为我认为目前的CPU的处理能力已经是非常高了&#xff0c;正常编写的在内存中处理的代码没有太严重的问题都不会对CPU造成很大的影响&#…

算力至上?四大AI芯片大对决

来源 | 老石谈芯&#xff08;ID: laoshi_tanxin&#xff09;目前&#xff0c;全世界超过90%的数据都是在过去的两三年之内产生的。随着人工智能、自动驾驶、5G、云计算等各种技术的不断发展&#xff0c;海量数据都将会继续源源不断的产生。预计到2025年&#xff0c;数据总量将比…

JavaScript作用域原理——预编译

JavaScript是一种脚本语言, 它的执行过程, 是一种翻译执行的过程。并且JavaScript是有预编译过程的&#xff0c;在执行每一段脚本代码之前, 都会首先处理var关键字和function定义式&#xff08;函数定义式和函数表达式&#xff09;。 一、变量执行之前&#xff0c;会被赋为unde…

VC++实现QQ聊天工具【源代码】

http://down.51cto.com/data/53416转载于:https://blog.51cto.com/6297123/1094981

​炸了!程序员现在没有这点技能都还不能就业了?

数据正在变得越来越常见&#xff0c;小到我们每个人的社交网络、消费信息、运动轨迹……&#xff0c;大到企业的销售、运营数据&#xff0c;产品的生产数据&#xff0c;交通网络数据……如何从海量数据中获得别人看不见的知识&#xff0c;如何利用数据来武装营销工作、优化产品…

javascript表单之间的数据传递

今天有朋友问我关于用javascript来进行页面各表单之间的数据传递的问题&#xff0c;我以前也写过&#xff0c;不过从来没有注意&#xff0c;今天总结了一下&#xff0c;希望能够给大家一些帮助&#xff0c;也帮助我总结以前学过&#xff0c;用过的知识。 一&#xff0c;最简单的…

Vue从Hello World到打包(后端适读)

Vue从Hello World到上线 Vue 简介 Vue是个MVVM框架。 特点&#xff1a;简单易学、体积小、性能高。并且它的源码耦合性非常低&#xff0c;了解它的过程也就是思想进步的过程。 当然&#xff0c;只学这一个框架&#xff0c;无法完成前端的全部工作&#xff0c;除了Vue之外&#…

Android和iOS那个好?

Android和iOS那个好&#xff1f; 应该先往哪个上面投入资源&#xff1f; 多次被人问到此类问题&#xff0c;笔者刚好自己的项目也需要考虑iOS版本。就索性进行了一番调研&#xff0c;于是有了本文&#xff08;本次不讨论越狱的iOS&#xff09; 首先从情感上&#xff0c;你…

对话谢宝友:搞真正自研的国产操作系统,而不是伪创新

作者 | 郑丽媛责编 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;从国外操作系统的长期垄断到中国自主研发操作系统数十年的起落浮沉&#xff0c;技术自主创新独立已成为国产基础软件的主要突破口。近几年间&#xff0c;随着物联网时代的到来&#xff0c;以…

ASP.NET 学习历程

[注意我不推荐高级技术的书&#xff0c;因为你如果是个高手了就可以自己选择甄别书了&#xff0c;此文只对初学者&#xff0c;因为他们此时没有辨别好快的能力&#xff0c;本人几乎买尽所有的.NET书&#xff0c;有好有坏。] 你所看的第一本书对你以后影响最重要&#xff01;&a…

http头部消息中的cache-control解释

网页的缓存是由HTTP消息头中的“Cache-control”来控制的&#xff0c;max-age&#xff1a;&#xff08;只接受 Age 值小于 max-age 值&#xff0c;并且没有过期的对象&#xff09;max-stale&#xff1a;&#xff08;可以接受过去的对象&#xff0c;但是过期时间必须小于 max-st…

iframe自动调整高度能在IE5里实现吗

偶已经理解到style"height:expression(main.document.body.scrollHeight)"只对第一次显示的内嵌网页有效&#xff0c;如果里面的内容更新必须把主页刷新一遍才能自动适应新的高度&#xff0c;那么惟一的解决办法就是点击链接后整个页面都刷新一次&#xff0c;如何写成…

SQL Server-流程控制 5,Goto 语句

ylbtech-SQL Server:SQL Server-流程控制 5,Goto 语句SQL Server 流程控制中的 Goto 语句。 1&#xff0c;Goto 语句1 --2 -- 1, Goto语句3 -- Desc:Goto语句可以让程序跳转到一个指定的标签处并执行其后的代码。Goto语句和标签可以在程序4 -- 、批处理和语句块中的任意位置使用…

MLPerf基准测试再发榜,浪潮AI服务器刷新18项纪录

近日&#xff0c;全球倍受瞩目的权威AI基准测试MLPerf公布今年的推理测试榜单&#xff0c;其中浪潮AI服务器NF5488A5一举创造18项性能纪录&#xff0c;在数据中心AI推理性能上遥遥领先其他厂商产品。 MLPerf是当前全球最具影响力的AI计算基准评测组织&#xff0c;由图灵奖得主大…

Web充斥着存在漏洞的过期JavaScript库

虽然使用第三方软件库通常会降低开发的时间&#xff0c;但同时也会增加网站暴露出的攻击表面&#xff0c;对此我们应有充分的认识。因此需要保持第三方软件库的最新版本依赖&#xff0c;以便从安全更新中获益。即便如此&#xff0c;一份近期研究表明&#xff0c;在Alexa排名前7…

asp.net实现C#代码加亮显示

以下是代码片段&#xff1a;StringWriter textBuffer new StringWriter();Match match Regex.Match(HTMLStr,"/",RegexOptions.IgnoreCase | RegexOptions.Compiled);if(matchnull){Response.Write(HTMLStr);return;} string codeType match.Groups["codeType…

应用在大规模推荐系统,Facebook提出组合embedding方法 | KDD 2020

来源 | 深度传送门&#xff08;ID: deep_deliver&#xff09;Facebook团队考虑embedding的存储瓶颈&#xff0c;提出了一种新颖的方法&#xff0c;通过利用类别集合的互补分区为每个类别生成唯一的embedding向量&#xff0c;无需明确定义&#xff0c;从而以端到端的方式减小emb…