1、定义

字符串是有另个或多个字符组成的集合

字符可以是:①数字 ②字母 ③特殊字符 ④不可见字符(\n、\t、\r等等)

2、单引号和双引号的区别

①双引号:双引号中的内容是经过PHP的语法分析器解析过的,任何变量在双引号中都会被转换为它的值进行显示输出

②单引号:单引号中的内容是"所见即所得"的,无论有无变量,都会被当做普通字符串原样输出。

注意:在进行SQL查询之前,所有的字符串都必须加单引号,以避免可能的注入漏洞和SQL错误。

3、字符串连接

①字符串连接符"."

②字符串连接符无法实现大量简单字符串的拼接,PHP允许程序员在双引号中直接包含字符串变量123456<?php $name='Jormin';$web='ww.Jormin';//注意:在$name和$web之间加入字符串后,$web前面的字符串都不显示,包括$nameecho "$name$web.com";?>

4、字符串操作

①去除字符串首位空格和特殊字符:trim(string,charlist)参数描述

string必需。规定要检查的字符串。

charlist可选。规定要转换的字符串。如果省略该参数,则删除以下所有字符:"\0" - NULL

"\t" - tab

"\n" - new line

"\x0B" - 纵向列表符

"\r" - 回车

" " - 普通空白字符

trim():两侧

ltrim():左侧

rtrim():右侧12345678<?php $str="\r\t\0\0@_@(:测试:)@_@";$charlist="\r\t\0(::)@_@";echo '原字符串为:'.$str.'

';echo 'charlist为:'.$charlist.'

';echo '不设置charlist的删除结果:'.trim($str).'

';echo '设置charlist的删除结果:'.trim($str,$charlist);?>

运行结果:

原字符串为: @_@(:测试:)@_@

charlist为: (::)@_@

不设置charlist的删除结果:@_@(:测试:)@_@

设置charlist的删除结果:测试

②转义、还原字符串数据

1>手动:简单字符串

使用转义字符 "\" 或者使用addcslashes()方法对字符串进行还原

【1】转义字符

123<?phpecho 'select * from t_book wbere bookname=\'人月神话\'';?>

运行结果:

select * from t_book wbere bookname='人月神话'

【2】使用addcslashes()函数

12345678<?php $str='人月神话adda';echo'原字符串:'.$str.'

';$a=addcslashes($str,"人月神话");echo'手工转义后的字符串:'.$a.'

';$b=stripcslashes($a);echo'还原后的字符串:'.$b.'

';?>

运行结果:

原字符串:人月神话adda

手工转义后的字符串:\344\272\272\346\234\210\347\245\236\350\257\235adda

还原后的字符串:人月神话adda

2>自动:数据量大的字符串

使用addslashes()方法进行转义,然后使用stripslashes()方法进行还原

注意:所有数据在插入数据库之前,有必要用addslashes()方法进行转义,以免出现错误

12345678<?php $str="selet * from t_book where bookname='人月神话'";echo '原字符串:'.$str.'

';$a=addslashes($str);echo '自动转义后的字符串:'.$a.'

';$b=stripslashes($a);echo '还原后的字符串:'.$b.'

';?>

运行结果:

原字符串:selet * from t_book where bookname='人月神话'

自动转义后的字符串:selet * from t_book where bookname=\'人月神话\'

还原后的字符串:selet * from t_book where bookname='人月神话'

③获取字符串长度

使用strlen()方法

注意:汉子占两个字节,其余字符占一个字节。1234<?php $str="人月神话是一本思维角度很棒的书。";echo 'str的长度为:'.strlen($str);?>

运行结果:

str的长度为:48

④截取指定字符串

使用substr()方法

注意:

1>下标是从0开始

2>substr()截取中文字符时,如果截取的字符串出现单数,就会出现中文乱码的情况,因为中文占两个字节。要解决这个问题,需要用substr()自定义一个方法。

实例:在web页面中,经常需要对超长文本进行部分显示,来保证页面的合理布局。12345<?php $str='PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。';echo '原字符串:

'.$str.'

';echo '截取后字符串显示:

'.substr($str,0,101).'......';?>

运行结果:

原字符串:

PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

截取后字符串显示:

PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快......

⑤比较字符串

1>按照字节进行比较

【1】strcmp()函数:区分大小写,网站登录的时候可以用次方法来检测大小写是否匹配。

定义和用法

strcmp() 函数比较两个字符串。

该函数返回:0 - 如果两个字符串相等

<0 - 如果 string1 小于 string2

>0 - 如果 string1 大于 string2

语法strcmp(string1,string2)参数描述

string1必需。规定要比较的第一个字符串。

string2必需。规定要比较的第二个字符串。

提示和注释

注释:该函数是二进制安全的,且对大小写敏感。

【2】strcasecmp()函数:不区分大小写,具体用法和strcmp()一样。12345678<?php $str1='php';$str2='PHP';echo 'str1='.$str1.'

';echo 'str2='.$str2.'

';echo 'strcmp()函数比较结果:'.strcmp($str1,$str2).'

';echo 'strcasecmp()函数比较结果:'.strcasecmp($str1,$str2).'

';?>

运行结果:

str1=php

str2=PHP

strcmp()函数比较结果:1

strcasecmp()函数比较结果:0

2>按照自然排序法进行比较:对字符串中的数字进行比较,将数字按照大小进行排序

【1】strnatcmp()函数:区分大小写

定义和用法

strnatcmp() 函数使用一种“自然”算法来比较两个字符串。

在自然算法中,数字 "2" 小于数字 "10"。在计算机排序中,"2" 大于 "10",这是因为 "2" 大于 "10" 的第一个数字。

该函数返回:0 - 如果两个字符串相等

<0 - 如果 string1 小于 string2

>0 - 如果 string1 大于 string2

语法strnatcmp(string1,string2)参数描述

string1必需。规定要比较的第一个字符串。

string2必需。规定要比较的第二个字符串。

提示和注释

注释:该函数对大小写敏感。

【2】strnatcasecmp()函数:不区分大小写,具体用法和strnatcmp()函数一样。

1234567891011<?php $str1='php2?';$str2='PHP2?';$str3='PHP10?';echo 'str1='.$str1.'

';echo 'str2='.$str2.'

';echo 'str3='.$str3.'

';echo 'strcmp(str2,str3)比较结果:'.strcmp($str2,$str3).'

';echo 'strnatcmp(str2,str3)比较结果:'.strnatcmp($str2,$str3).'

';echo 'strnatcasecmp(str1,str3)比较结果:'.strnatcasecmp($str1,$str3).'

';?>

运行结果:

str1=php2?

str2=PHP2?

str3=PHP10?

strcmp(str2,str3)比较结果:1

strnatcmp(str2,str3)比较结果:-1

strnatcasecmp(str1,str3)比较结果:-1

3>指定从源字符串的位置开始比较:比较字符串中的前n个字符

【1】strncmp()函数:区分大小写

定义和用法

strncmp() 函数比较两个字符串。

该函数返回:0 - 如果两个字符串相等

<0 - 如果 string1 小于 string2

>0 - 如果 string1 大于 string2

语法strncmp(string1,string2,length)参数描述

string1必需。规定要比较的第一个字符串。

string2必需。规定要比较的第二个字符串。

length必需。规定每个字符串用于比较的字符数。

提示和注释

注释:该函数是二进制安全的,且对大小写敏感。

【2】strncasecmp():不区分大小写,具体用法和strncmp()一样。12345678<?php $str1='i love china';$str2='I lovE Web';echo'str1='.$str1.'

';echo'str2='.$str2.'

';echo'strncmp(str1,str2,6)比较结果:'.strncmp($str1,$str2,6).'

';echo'strncasecmp(str1,str2,6)比较结果:'.strncasecmp($str1,$str2,6).'

';?>

运行结果:

str1=i love china

str2=I lovE Web

strncmp(str1,str2,6)比较结果:1

strncasecmp(str1,str2,6)比较结果:0

⑥检测字符串

1>检索字符串中指定的关键字,获取一个字符串在另一个字符串中首次出现到后者末尾的子字符串,如果匹配成功返回剩余字符串,匹配不成功返回false。

【1】strstr()函数:区分大小写。

定义和用法

strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。

该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。

语法strstr(string,search)参数描述

string必需。规定被搜索的字符串。

search必需。规定所搜索的字符串。如果该参数是数字,则搜索匹配数字 ASCII 值的字符。

提示和注释

注释:该函数是二进制安全的。

注释:该函数对大小写敏感。如需进行大小写不敏感的搜索,请使用 stristr()。

【2】stristr()函数:不区分大小写,具体方法和strstr()函数类似。

2>检索字符串出现的次数:一把用于搜索引擎中。

substr_count():

语法substr_count(string,substring,start,length)参数描述

string必需。规定要检查的字符串。

substring必需。规定要检索的字符串。

start可选。规定在字符串中何处开始搜索。

length可选。规定搜索的长度。1234<?php $str='测试单词的出现的次数,为了配合测试,多写几个词,这是第三次出现词这个单词,好吧,第四次了。';echo'\'词\'出现的次数是:'.substr_count($str,'词');?>

运行结果:

'词'出现的次数是:4

⑦替换字符串

1>用一个字符串替换原字符串的另一些字符,最常用的就是搜索引擎的关键字处理,如关键字描红(适用于模糊查询)等。

【1】str_replace()函数:区分大小写str_replace(find,replace,string,count)参数描述

find必需。规定要查找的值。

replace必需。规定替换 find 中的值的值。

string必需。规定被搜索的字符串。

count可选。一个变量,对替换数进行计数。

提示和注释

注释:该函数对大小写敏感。请使用 str_ireplace() 执行对大小写不敏感的搜索。

注释:该函数是二进制安全的。

【2】str_ireplace()函数:不区分大小写,具体用法类似str_replace()函数。

<?php $str1='周杰伦J-->1-->周杰伦J-->2-->周杰伦j-->3-->周杰伦j-->4-->周杰伦J';$str2='周杰伦j';$str3=" Jay";$num=0;echo '原字符串:'.$str1.'

';echo '检测字符:'.$str2.'

';echo '替换字符:'.$str3.'

';echo 'str_replace($str2,$str3,$str1)执行结果:'.str_replace($str2,$str3,$str1).'

';echo 'str_ireplace($str2,$str3,$str1)执行结果:'.str_ireplace($str2,$str3,$str1).'

';echo 'str_replace($str2,$str3,$str1,$num)执行结果:'.str_replace($str2,$str3,$str1,$num).'

';echo 'str_replace($str2,$str3,$str1,$num)替换的个数是:'.$num;?>

运行结果:

原字符串:周杰伦J-->1-->周杰伦J-->2-->周杰伦j-->3-->周杰伦j-->4-->周杰伦J

检测字符:周杰伦j

替换字符:Jay

str_replace($str2,$str3,$str1)执行结果:周杰伦J-->1-->周杰伦J-->2-->Jay-->3-->Jay-->4-->周杰伦J

str_ireplace($str2,$str3,$str1)执行结果:Jay-->1-->Jay-->2-->Jay-->3-->Jay-->4-->Jay

str_replace($str2,$str3,$str1,$num)执行结果:周杰伦J-->1-->周杰伦J-->2-->Jay-->3-->Jay-->4-->周杰伦J

str_replace($str2,$str3,$str1,$num)替换的个数是:2

2>对指定字符串中的部分字符进行替换:substr_replace()函数

定义和用法

substr_replace() 函数把字符串的一部分替换为另一个字符串。

语法substr_replace(string,replacement,start,length)参数描述

string必需。规定要检查的字符串。

replacement必需。规定要插入的字符串。

start必需。规定在字符串的何处开始替换。正数 - 在第 start 个偏移量开始替换

负数 - 在从字符串结尾的第 start 个偏移量开始替换

0 - 在字符串中的第一个字符处开始替换

charlist可选。规定要替换多少个字符。正数 - 被替换的字符串长度

负数 - 从字符串末端开始的被替换字符数

0 - 插入而非替换

提示和注释

注释:如果 start 是负数且 length 小于等于 start,则 length 为 0

<?php $str='test the substr_replace()';$str1='hehe';echo '原字符串:'.$str.'

';echo 'substr($str,$str1,0,4)替换后的字符串:'.substr_replace($str,$str1,0,4).'

';?>

运行结果:

原字符串:test the substr_replace()

substr($str,$str1,0,4)替换后的字符串:hehe the substr_replace()

⑧格式化字符串

1>字符串的格式化

2>数字的格式化(最常用)

number_format()函数:

定义和用法

number_format() 函数通过千位分组来格式化数字。

语法number_format(number,decimals,decimalpoint,separator)参数描述

number必需。要格式化的数字。

如果未设置其他参数,则数字会被格式化为不带小数点且以逗号 (,) 作为分隔符。

decimals可选。规定多少个小数。如果设置了该参数,则使用点号 (.) 作为小数点来格式化数字。

decimalpoint可选。规定用作小数点的字符串。

separator可选。规定用作千位分隔符的字符串。

仅使用该参数的第一个字符。比如 "xyz" 仅输出 "x"。

注释:如果设置了该参数,那么所有其他参数都是必需的。

提示和注释

注释:该函数支持一个、两个或四个参数(不是三个)

<?php $str='123.633';echo 'str='.$str.'

';echo 'number_format($str)='.number_format($str).'

';echo 'number_format($str,2)='.number_format($str,2).'

';$str1='111222333.444555';echo 'str1='.$str1.'

';echo 'number_format($str1,2,\'*\',\'_\')='.number_format($str1,2,'*','_').'

';?>

运行结果:

str=123.633

//注意,这里是124,格式化时四舍五入。

number_format($str)=124

number_format($str,2)=123.63

str1=111222333.444555

number_format($str1,2,'*','_')=111_222_333*44

⑨分割字符串:

explode():按照指定的规则对一个字符串进行分割,返回值是一个数组。

注意:数组下标从0开始

定义和用法

explode() 函数把字符串分割为数组。

语法explode(separator,string,limit)参数描述

separator必需。规定在哪里分割字符串。

string必需。要分割的字符串。

limit可选。规定所返回的数组元素的最大数目。

说明

本函数返回由字符串组成的数组,其中的每个元素都是由 separator 作为边界点分割出来的子字符串。

separator 参数不能是空字符串。如果 separator 为空字符串(""),explode() 将返回 FALSE。如果 separator 所包含的值在 string 中找不到,那么 explode() 将返回包含 string 中单个元素的数组。

如果设置了 limit 参数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。

如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素。此特性是 PHP 5.1.0 中新增的。

提示和注释

注释:参数 limit 是在 PHP 4.0.1 中加入的。

注释:由于历史原因,虽然 implode() 可以接收两种参数顺序,但是 explode() 不行。你必须保证 separator 参数在string 参数之前才行

<?php $str='01@12@23@34@45@56@67@78@89';$str_array=explode('@',$str);echo '第一种输出方法print_r($str_array)

';print_r($str_array);echo '

';echo '第二种输出方法echo $str_array[]

';for($i=0;$i<10;$i++){echo $str_array[$i].' ';}?>

运行结果:

第一种输出方法print_r($str_array)

Array ( [0] => 01 [1] => 12 [2] => 23 [3] => 34 [4] => 45 [5] => 56 [6] => 67 [7] => 78 [8] => 89 )

第二种输出方法echo $str_array[]

01 12 23 34 45 56 67 78 89

⑩合并字符串

implode()函数:将数组合并为一个字符串。

定义和用法

implode() 函数把数组元素组合为一个字符串。

语法implode(separator,array)参数描述

separator可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。

array必需。要结合为字符串的数组。

说明

虽然 separator 参数是可选的。但是为了向后兼容,推荐您使用使用两个参数。

提示和注释

注释:implode() 可以接收两种参数顺序。但是由于历史原因,explode() 是不行的。你必须保证 separator 参数在string 参数之前才行。

<?php $str='01@12@23@34@45@56@67@78@89';$str_array=explode('@',$str);$str_array_new=implode('@',$str_array);echo '合并后的字符串:'.$str_array_new;?>

运行结果:

合并后的字符串:01@12@23@34@45@56@67@78@89

php $str1=,PHP——字符串相关推荐

  1. c语言和c++字符串操作对比

    C语言字符串操作 #include <stdio.h> #include <string.h> int main() {//字符数组char str1[20] = " ...

  2. SQL中返回一个字符串在另一个中存在的次数

    ALTER FUNCTION [reg].[f_GetSameStringCntNoSort] ( @str1 VARCHAR(100),--源字符串,取该串中的@strLen长度的字符是否在目的字符 ...

  3. python 字符串按指定分隔符分割

    python 字符串按指定分隔符分割 def str_split(str1,str2):"""# 字符串分割:param str1:字符串:param str2:分隔符: ...

  4. golang中字符串内置函数整理

    字符串内置函数 1. 判断字符串的长度 str := "korea国" fmt.Println("str len=", len(str)) 2. 字符串遍历,同 ...

  5. C 语言编程 — 高级数据类型 — 字符串

    目录 文章目录 目录 前文列表 字符串 字符串拷贝 字符串比较 strcmp strncmp 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> &l ...

  6. matlab字符衔接,matlab字符串连接(多个字符串)的经验,matlab字符串

    matlab字符串连接(多个字符串)的经验,matlab字符串 参考 matlab中字符串连接的3种方法  文章,实验遇到的一些小白问题,如有问题希望大神们给予指导. Matlab中,两个或多个字符串 ...

  7. 《Java从小白到大牛》之第9章 字符串

    <Java从小白到大牛>纸质版已经上架了!!! 由字符组成的一串字符序列,称为"字符串",在前面的章节中也多次用到了字符串,本章将重点介绍. Java中的字符串 Jav ...

  8. 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

    一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...

  9. 我学Delphi心得及笔记----字符串操作(第六讲)

    Delphi 中字符串的操作很简单,但幕后情况却相当复杂.Pascal 传统的字符串操作方法与Windows 不同,Windows吸取了C语言的字符串操作方法.32位Delphi中增加了长字符串类型, ...

最新文章

  1. Python变量作用域的规则以及如何搜索内置作用域
  2. ubuntu安装numpy,matplotlib等
  3. webrtc agc matlab,c++ WebRTC AGC(自动增益控制)
  4. Ubuntu 18.04安装ROS 2
  5. 前端学习(2182):keep-alive及其他问题
  6. java 线程 交给spring_浅谈Java中spring 线程异步执行
  7. GCC编译器和GDB调试器常用选项
  8. mysql替换sql中rank函数_MySQL sql Rank()函数实现
  9. 使用Eclipse构建GeoTools项目
  10. dtft性质及证明_N第二章离散时间傅立叶变换(DTFT).ppt
  11. RuoYi-Vue Spring Security 密码加密
  12. matlab怎么新建文件运行不了,关于:Matlab中直接双击fig文件运行出错,而从.m文件运行却不会出错问题的一点心得...
  13. 安卓眼球追踪_研究者开发AI眼球追踪系统 智能手机都能用
  14. VBS脚本学习:遍历XML文档
  15. 从质量低到高带你了解影片名里面的TC、HD等的含义
  16. 快速对齐word目录页码
  17. PHP:PECL 安装扩展
  18. Zinnia - Django 博客框架
  19. springBoot集成websocket报java.lang.IllegalStateException: Failed to register @ServerEndpoint class:错误
  20. V神已抵京, 倒计时4天! 6大理由告诉你为什么要参加2019以太坊技术及应用大会...

热门文章

  1. php微博登录授权代码,php使用新浪微博API开发用户授权功能
  2. 宝塔面板Java 项目一键部署 一键启动spring boot 日志报错 Error: Unable to access jarfile xxx.jar--service
  3. 第9章-结构体与共同体
  4. php strtotime mktime,php中time()和mktime()用法的区别分析
  5. ADB命令汇总 机顶盒相关操作
  6. Kotlin解决烦人的?.
  7. uni-app图片、视频上传
  8. 深度讲解TS:这样学TS,迟早进大厂【15】:字符串字面量类型
  9. 临界资源 互斥访问 内核中的up和down函数
  10. java多线程的几种状态