PHP字符串处理总结

函数描述
addcslashes() 返回在指定的字符前添加反斜杠的字符串。
addslashes() 返回在预定义的字符前添加反斜杠的字符串。
bin2hex() 把 ASCII 字符的字符串转换为十六进制值。
chop() 删除字符串右侧的空白字符或其他字符。
chr() 从指定的 ASCII 值返回字符。
chunk_split() 把字符串分割为一系列更小的部分。
convert_cyr_string() 把字符串由一种 Cyrillic 字符集转换为另一种。
convert_uudecode() 解码 uuencode 编码字符串。
convert_uuencode() 使用 uuencode 算法对字符串进行编码。
count_chars() 返回有关字符串中所用字符的信息。
crc32() 计算字符串的 32 位 CRC。
crypt() 单向的字符串加密法(hashing)。
echo() 输出一个或多个字符串。
explode() 把字符串打散为数组。
fprintf() 把格式化的字符串写入到指定的输出流。
get_html_translation_table() 返回由 htmlspecialchars() 和 htmlentities() 使用的翻译表。
hebrev() 把希伯来文本转换为可见文本。
hebrevc() 把希伯来文本转换为可见文本,并把新行(\n)转换为 <br>。
hex2bin() 把十六进制值的字符串转换为 ASCII 字符。
html_entity_decode() 把 HTML 实体转换为字符。
htmlentities() 把字符转换为 HTML 实体。
htmlspecialchars_decode() 把一些预定义的 HTML 实体转换为字符。
htmlspecialchars() 把一些预定义的字符转换为 HTML 实体。
implode() 返回由数组元素组合成的字符串。
join() implode() 的别名。
lcfirst() 把字符串的首字符转换为小写。
levenshtein() 返回两个字符串之间的 Levenshtein 距离。
localeconv() 返回本地数字及货币格式信息。
ltrim() 移除字符串左侧的空白字符或其他字符。
md5() 计算字符串的 MD5 散列。
md5_file() 计算文件的 MD5 散列。
metaphone() 计算字符串的 metaphone 键。
money_format() 返回格式化为货币字符串的字符串。
nl_langinfo() 返回特定的本地信息。
nl2br() 在字符串中的每个新行之前插入 HTML 换行符。
number_format() 以千位分组来格式化数字。
ord() 返回字符串中第一个字符的 ASCII 值。
parse_str() 把查询字符串解析到变量中。
print() 输出一个或多个字符串。
printf() 输出格式化的字符串。
quoted_printable_decode() 把 quoted-printable 字符串转换为 8 位字符串。
quoted_printable_encode() 把 8 位字符串转换为 quoted-printable 字符串。
quotemeta() 引用元字符。
rtrim() 移除字符串右侧的空白字符或其他字符。
setlocale() 设置地区信息(地域信息)。
sha1() 计算字符串的 SHA-1 散列。
sha1_file() 计算文件的 SHA-1 散列。
similar_text() 计算两个字符串的相似度。
soundex() 计算字符串的 soundex 键。
sprintf() 把格式化的字符串写入变量中。
sscanf() 根据指定的格式解析来自字符串的输入。
str_getcsv() 把 CSV 字符串解析到数组中。
str_ireplace() 替换字符串中的一些字符(对大小写不敏感)。
str_pad() 把字符串填充为新的长度。
str_repeat() 把字符串重复指定的次数。
str_replace() 替换字符串中的一些字符(对大小写敏感)。
str_rot13() 对字符串执行 ROT13 编码。
str_shuffle() 随机地打乱字符串中的所有字符。
str_split() 把字符串分割到数组中。
str_word_count() 计算字符串中的单词数。
strcasecmp() 比较两个字符串(对大小写不敏感)。
strchr() 查找字符串在另一字符串中的第一次出现。(strstr() 的别名。)
strcmp() 比较两个字符串(对大小写敏感)。
strcoll() 比较两个字符串(根据本地设置)。
strcspn() 返回在找到某些指定字符的任何部分之前,在字符串中查找的字符数。
strip_tags() 剥去字符串中的 HTML 和 PHP 标签。
stripcslashes() 删除由 addcslashes() 函数添加的反斜杠。
stripslashes() 删除由 addslashes() 函数添加的反斜杠。
stripos() 返回字符串在另一字符串中第一次出现的位置(对大小写不敏感)。
stristr() 查找字符串在另一字符串中第一次出现的位置(大小写不敏感)。
strlen() 返回字符串的长度。
strnatcasecmp() 使用一种"自然排序"算法来比较两个字符串(对大小写不敏感)。
strnatcmp() 使用一种"自然排序"算法来比较两个字符串(对大小写敏感)。
strncasecmp() 前 n 个字符的字符串比较(对大小写不敏感)。
strncmp() 前 n 个字符的字符串比较(对大小写敏感)。
strpbrk() 在字符串中查找一组字符的任何一个字符。
strpos() 返回字符串在另一字符串中第一次出现的位置(对大小写敏感)。
strrchr() 查找字符串在另一个字符串中最后一次出现。
strrev() 反转字符串。
strripos() 查找字符串在另一字符串中最后一次出现的位置(对大小写不敏感)。
strrpos() 查找字符串在另一字符串中最后一次出现的位置(对大小写敏感)。
strspn() 返回在字符串中包含的特定字符的数目。
strstr() 查找字符串在另一字符串中的第一次出现(对大小写敏感)。
strtok() 把字符串分割为更小的字符串。
strtolower() 把字符串转换为小写字母。
strtoupper() 把字符串转换为大写字母。
strtr() 转换字符串中特定的字符。
substr() 返回字符串的一部分。
substr_compare() 从指定的开始位置(二进制安全和选择性区分大小写)比较两个字符串。
substr_count() 计算子串在字符串中出现的次数。
substr_replace() 把字符串的一部分替换为另一个字符串。
trim() 移除字符串两侧的空白字符和其他字符。
ucfirst() 把字符串中的首字符转换为大写。
ucwords() 把字符串中每个单词的首字符转换为大写。
vfprintf() 把格式化的字符串写到指定的输出流。
vprintf() 输出格式化的字符串。
vsprintf() 把格式化字符串写入变量中。
wordwrap() 打断字符串为指定数量的字串

 

strtoupper()://将字符串转换为大写
strtolower()://将字符串转换为小写
ucfirst()://把字符串中第一个字符换为大写
//ucwords()://把字符串中每个单词的首字母大写

explode(',', $str)://根据,来把字符串打散成数组,如果出现空值(可以使用array_filter进行过滤),  array array_filter ( array $input [, callback $callback ] )
implode(',', $arr)://把数组元素用,连接起来成为一个字符串;join()也有这个作用
//strtok($str, 'abc')://该函数会根据第二参数中的每个字符(a, b, c)而非abc整体,来对$str进行分割,且其内部会记录在字符串中的指针,因此可以不输入$str
substr($str, 0, 9)://截取$str字符串中0为起点,长度为9的字符串(sub开头的字符串操作函数多是以字符串下标作为参数)

strcmp($str1, $str2)://字符串排序(用$str1-$str2,若大于,结果为正,等于为0,小于,结果为负)
strcasecmp()://区分大小写
strnatcmp()://按自然顺序(人类习惯)对$str1, $str2排序,2小于12(strcmp()按字典排序,2大于12)
strlen('hello')://获取字符串长度5;

strpos('hello', 'o', 2)//从hello的第3个位置开始搜索'o'第一次出现的位置(需要注意的是,若找不到函数会返回false,php中false等价于0,所以,需要使用 === 来判断是否真找到字符串)
strrpos('hello', 'o', 2)://用法与上类似,但,是搜索'o'最后一次出现的位置

str_replace($old_str, $new_str, $all_str)://把$all_str中的$old_str全替换为$new_str字符串,
substr_replace($all_str, $new_str, 1, 3);将$all_str中的第2个位置开始,替换为$new_str字符串,第4参数决定替换终点(若无,则表示替换至 字符串末尾);


用于字符串过滤
1.html_entity_decode() 和htmlentities()://把 类似&amp; &#039;的html实体字符,转换为字符(也就是& 和‘);后者相反(转换全部字符!),意义不大
2.htmlspecialchars() 和 htmlspecialchars_decode() ://& , ",' ,<把这4个字符转为html实体;后者相反
3.addslashes()和stripslashes()://对 ‘, ‘’, \, null前添加\。后者相反;(适用于mysql)
4.strip_tags//去除字符串中html和php标签。
5.trim();//去除字符串头和尾的空格,返回结果字符串;默认情况下处理:\n \r \t \x0B \0 以及空格,也可以在第二参数中写入要过滤的特殊字符;
ltrim();rtrim();分别去除左右空格
6.nl2br();字符串中的换行符 替换为<br/>html实体 

1查找字符位置函数:   
strpos($str,search,[int]):查找search在$str中的第一次位置从int开始; 
stripos($str,search,[int]):函数返回字符串在另一个字符串中第一次出现的位置。该函数对大小写不敏感 
strrpos($str,search,[int]):查找search在$str中的最后一次出现的位置从int开始
strripos($str,search,[int]):同上,该函数对大小写不敏感

 

2、提取子字符串函数(双字节)
substr($str,int start[,int length]):从$str中strat位置开始提取[length长度的字符串]。 
strstr($str1,$str2):从$str1(第一个的位置)搜索$str2并从它开始截取到结束字符串;若没有则返回FALSE。 
stristr() 功能同strstr,只是不区分大小写。 
strrchr() 从最后一次搜索到的字符处返回;用处:取路径中文件名

 

3、替换字符串的PHP字符串函数
str_replace(search,replace,$str):从$str中查找search用replace来替换
str_ireplace(search,replace,$str):同上,该函数对大小写不敏感 
strtr($str,search,replace):这个函数中replace不能为"";
substr_replace($Str,$rep,$start[,length]):$str原始字符串,$rep替换后的新字符串,$start起始置,$length替换的长度,该项可选

 

4、字符长度
int strlen($str)

 

5、比较字符函数 
int strcmp($str1,$str2):$str1>=<$str2分别为正1,0,-1(字符串比较) 
strcasecmp() 同上(不分大小写)
strnatcmp("4","14") 按自然排序比较字符串 
strnatcasecmp() 同上,(区分大小写)

 

6、分割成数组的PHP字符串函数 
str_split($str,len):把$str按len长度进行分割返回数组 
split(search,$str[,int]):把$str按search字符进行分割返回数组int是分割几次,后面的将不分割 expload(search,$str[,int])

 

7、去除空格:
ltrim()、rtrim()、trim()

 

8、加空格函数 
chunk_split($str,2):向$str字符里面按2个字符就加入一个空格;

 

9、chr、ord

返回指定的字符或ascii

 

10、HTML代码有关函数
nl2br():使\n转换为<br>。
strip_tags($str[,'

']):去除HTML和PHP标记

在$str中所有HTML和PHP代码将被去除,可选参数为html和PHP代码作用是将保留可选参数所写的代码。 
如:echo strip_tags($text, '<br><p>');
htmlspecialchars($str[,参数]):页面正常输出HTML代码参数,是转换方式

 

11、字符大小写转换的PHP字符串函数 
strtolower($str): 字符串转换为小写 
strtoupper($str): 字符串转换为大写 
ucfirst($str): 将函数的第一个字符转换为大写 
ucwords($str): 将每个单词的首字母转换为大写

 

12、数据库相关的PHP字符串函数 
addslashes($str):使str内单引号(')、双引号(")、反斜线(\)与 NUL
字符串转换为\',\",\\。 
magic_quotes_gpc = On :自动对 get,post,cookie的内容进行转义
get_magic_quotes_gpc():检测是否打开magic_quotes_gpc
stripslashes(): 去除字符串中的反斜杠

 

PHP 常用字符串操作函数

1 拼接字符串 

拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行定义,这样做是比较有好处的. 

 

2 替换字符串 

在PHP这门语言中,提供了一个名字叫做substr_replace()的函数,该函数的作用可以快速的完成扫描和编辑文本内容较多的字符串替换功能.他的语法格式: 
mixed substr_replace(mixed $string,string $replacement, int $start[,int $length]) 
对于上面的语法格式的说明: 
string 是要检查或者将要被替换的字符串 
replacement 指定要用来插入或者替换的字符串 
start 指定在字符串的何处进行开始替换,这个参数可以取三种类型的值(正数:从字符串开头的第start个偏移量开始替换,负数,从字符串结尾处的第start个偏移量开始替换,0:从字符串中的第一个字符开始替换) 
length指定要替换多少个字符,这个参数也可以取三种类型的值(正数:被替换的字符串的长度,负数:从字符串的结尾开始被替换的字符串的长度,0:是插入操作,而不是替换操作); 

 

3 计算字符串 

1)计算字符串的长度 
在PHP中,strlen()函数用来计算字符串的长度并且返回该字符串的长度信息.该语法的格式如下:int strlen(string $string)格式里面的string就是用来指定要计算长度的字符串. 

2)计算字符串的数目 
在PHP中,substr_count()函数,可以用来非常方便而且准确的确定一个指定的子字符串在所提供的字符串中有多少个,substr_count()函数的语法格式如下:int substr_count(string $haystack,string $needle[,int $offset=0[,int $length]])在上面的语法中设计的参数的说明如下:haystack指定要检查的字符串,needle用来指定要插入的字符串,offset用来指定在字符串中何处开始搜索,默认值为0,length用来指定搜索的长度. 
在PHP中,str_word_count()函数,可以用来非常方便而且准确的确定一个某一个单词在所提供的字符串中有多少个,str_word_count()函数的语法格式如下:mixed str_word_count(string $string[,int $format=0[,string $charlist]])在上面的语法中涉及到的参数的说明如下:string用来指定要进行检查的字符串,format用来指定str_word_count()函数的返回值,这个参数的返回值可以返回三个值,分别是0,1,2.其中返回0的意思是默认值,返回找到的单词的数目,如果返回值为1的话,那么str_word_count()返回的就是一个数组,其中的键名是从0开始的连续整数,值是实际的单词.如果format的值取3的时候,那么str_word_count()函数的返回值就是一个数组,其中,数组的键名是单词在字符串中的位置,值是实际的单词. 

4,查找字符串 

字符串的查找可以分为很多种,比如说查找子字符串,查找某个字符串的位置等等,PHP分别为每个字符串查找操作提供了相应的函数. 

1)查找子字符串 
在PHP语言中,strstr()函数可以用来查找子字符串,该函数返回的结果为子字符串第一次出现的所有的内容,strstr()函数的格式如下:string strstr(string $haystack,mixed $needle)在上面的语法中,涉及到的参数的说明如下haystack:指定被搜索的字符串,needle指定所要搜索的字符串,如果该参数是数字的话,则会匹配器该数字ASCII值的字符.在实际的应用当中,会出现要忽略字母大小写的情况,这个时候,可以使用PHP提供的一个大小写不敏感的查找函数--stristr()函数,该函数的使用方法和strstr()函数的使用是一样的. 
2)查找字符串的位置 
strpos()函数的功能和strstr()函数是类似的,只是返回的不是字符串,而是一个字符串在另外一个字符串当中第一次出现的位置,strpos()的语法格式如下:int strpos(string $haystack,mixed $needle[,int $offset =0])在上面的语法中涉及到的参数的说明如下:haystack是要被搜索的字符串,needle指定要进行查找的字符串,offset是指定开始搜索的位置,默认值为0. 
strpos()函数是一个对大小写敏感的查找函数,但是在实际的应用过程当中往往会出现需要忽略大小写的,这个时候可以使用PHP提供的一个对大小写不是很敏感的查找函数stripos(),该函数的使用方法和strpos()是一样的.

5,比较字符串 
在PHP语言中,比较两个字符串的大小可以通过两种方式来实现:使用"=="操作符比较和使用函数进行比较 

1)使用"=="操作符比较两个字符串的大小 
在PHP中比较两个字符串的时候,最容易的方法就是使用双等号操作符(==). 
2)使用函数比较字符串的大小 
在PHP中提供的strcmp()函数可以更加精确的比较两个字符串的大小,语法格式如下int strcmp(string $str1,string $str2)在上述语法中涉及到的参数的说明如下:str1 指定要进行比较的字符串1,str2指定要进行比较的字符串2.这个strcmp谙熟可以确保两个字符串是否完全匹配,并将比较结果以整数的形式返回,这个函数的返回值有以下三种.0:两个字符串是相等的,小于0的时候,第一个字符串是小于后面的字符串的,如果返回值是大于零的,那么就说明,前面的字符串是大于后面的字符串的. 
除了strcmp()函数之外,PHP还提供了另外一些比较类似的比较函数,比如strncmp()函数可以选择想要比较的字符串的长度(字符个数),其语法格式如下:int strcmp(string $str1,string $str2,int $len)上面的参数说明 str1:指定要比较的第一个字符串,str2:指定要比较的第二个字符串len:指定每个字符串用于比较的字符个数. 
在比较字符串的时候,有的时候需要忽略大小写,就可以使用strcasemp()函数和strncasemp()函数,这两个函数与区分大小写的相应函数的使用方法是完全相同的,strcasecmp()函数和strncasecmp()两个函数的语法格式分别如下: 
int strcasecmp(string $str1,string $str2) 
int strncasecmp(string $str1,string $str2,int $len) 

6,复制字符串 
如果需要重复n次显示一个字符或者一个字符串的功能,则最简单的实现方法就是调用复制函数,在PHP中可以使用str_repeat()函数实现字符串的复制,这个函数的语法格式如下:string str_repeat(string $input,int $multiplier)在上述的语法中设计的参数的说明如下input指定要重复的字符串,multiplier指定字符串将被重复的次数. 

7,翻转字符串 
处理字符串的操作还包括对字符串进行翻转在PHP语言中,使用strrev()函数可以实现反转字符串的功能,strrev()函数的语法格式为 
string strrev(string $string) 
上面的参数string就是用于指定要进行翻转的字符串. 

8,切分,合并字符串 
把一个字符串按照某种规则切分成多个字符串,或者把多个字符串合并成一个长的字符串,是在处理字符串操作的时候会经常碰到的问题.使用PHP提供的explode()函数,str_split()函数,implode()函数可以处理类似切分,合并字符串的问题. 

1)切分字符串 
explode()函数的功能就是用指定的分隔符把字符串切分成数组,explode()函数的语法格式如下:array explode(string $delimiter,string $string[,int $limit])在上面的语法中涉及到的参数的说明如下:delimiter:指定在哪里分隔字符串,string:指定要进行分割的字符串,limit:指定所返回的数组元素的最大数目,最后的子块将会包含string的剩余部分. 
str_split()函数的作用是能够将一个字符串分割成等长度的多个子字符串.str_split()函数的语法格式如下:array str_split(string $string[,int $split_length=1])上面的语法中的参数说明如下:string:指定要分割的字符串,split_length:指定每个数组元素的长度,默认值为"1". 
2)合并字符串 
implode()函数的功能是将数组的元素连接起来成为字符串,implode()函数的语法格式如下:string implode([string $glue],array $pieces)在上述的语法中涉及到的参数的说明如下:glue()指定数组元素之间放置的内容,默认值为""(表示空格字符串)pieces指定要合并为字符串的数组.调用implode()函数可以根据参数所限制的条件获取一个新的字符串,达到合并字符串的目的. 
join()是implode()函数的别名,两个函数的用法是完全一样的,需要强调的是,虽然参数glue是可以选的,但是为了使程序拥有更好的兼容性,推荐使用两个参数. 
总结一下字符串的相关操作方法: 

1)printf()函数:可以对字符串进行格式化操作 
2)sprintf()函数:可以对字符串进行格式化操作,与printf()函数的区别就是需要使用echo才能将格式化后的字符串显示输出. 
3)nl2br()函数:可以将字符串中的换行符"\n"转换为HTML中的"<br/>"后显示出来. 
4)wordwrap()函数:指定从某列字符进行强制换行 
5)strtolower()函数:该函数实现的功能是将字符串中的所有的字符全部转换为小写字符 
6)strtoupper()函数:该函数的作用就是将字符串中的所有的字符全部转换为大写的字符 
7)ucwords()函数:该函数的作用就是将字符串中所有的首字符全部转换为大写字符 
8)substr_replace()函数:可以快速完成扫描并且编辑文本内容较多的字符串的功能 
9)strlen()函数:可以计算字符串的长度并且返回该字符串的长度 
10)substr_count()函数:可以确定一个字符串在所提供的字符串中有多少个 
11)str_word_count()函数,可以确定一个字符串中某个单词的出现次数. 
12)strstr()函数,可以用来查找子字符串,该函数的返回结果为子字符串第一次出现后的所有内容 
13)strpos()函数,功能和strstr()函数是类似的,只是返回的不是字符串,而是一个字符串在另一个字符串中第一次出现的位置. 
14)strcmp()函数,该函数的功能可以精确的比较两个字符串的大小 
15)strncmp()函数,可以选择要比较的字符串的长度(字符个数) 
16)strcasecmp()函数,可以在忽略大小写的时候,对两个字符串进行比较 
17)strncasecmp()函数,可以在忽略大小写的前提下,对两个字符串时候进行长度或者字符数目的比较. 
18)str_repeat()函数,重复n次显示一个字符或者字符串的功能 
19)strrev()函数,提供对字符串进行翻转的操作 
20)explode()函数,提供了将某个字符串切分为多个字符串的功能,指定分隔符吧字符串切分成数组. 
21)str_split()函数,能够将一个字符串分割成等长度的多个子字符串 
22)implode()函数,将数组的元素连接起来成为字符串 
23)join()函数,使用方法与implode()函数是一摸一样的,它的作用也是将数组元素连接起来成为一个字符串

 

php 判断一个字符串是否包含另一个字符串

stripos($a, $b)  !==  false

如果$a 中存在 $b,则为 true ,否则为 false

用 !== false (或者 === false) 的原因是如果 $b 正好位于$a的开始部分,那么该函数会返回int(0),那么0是false,但$b确实位于$a中,所以要用 !== 判断一下类型,要确保是严格的 false。
其它的还有 PHP 原生支持的函数,如 strstr(),stristr() 等,直接判断就可以了

posted on 2018-10-10 20:34  咖啡的味道(java)  阅读(2132)  评论(0编辑  收藏  举报

导航