php字符串分割(explode str_split preg_split

 更新时间:2016年11月25日 16:49  点击:2076
分隔字符串,使用“str_split”就可以了好处是连空格也会作为数组的元素。我之前的例子就是因为前一个字符串包含2个空格,而后一个只有一个。但是输出的时候看到的显示都是一样的。 也可以按照其他分隔符进行分割,如“explode”或者“preg_split”,

php教程 explode() 函数
php string 函数
定义和用法
explode() 函数把字符串分割为数组。

语法
explode(separator,string,limit)参数 描述
separator 必需。规定在哪里分割字符串。
string 必需。要分割的字符串。
limit 可选。规定所返回的数组元素的最大数目。

例子
在本例中,我们将把字符串分割为数组:

 代码如下 复制代码
<?php
$str = "hello world. it's a beautiful day.";
print_r (explode(" ",$str));
?>

输出:

 代码如下 复制代码
array
(
[0] => hello
[1] => world.
[2] => it's
[3] => a
[4] => beautiful
[5] => day.
)

str_split 拆分函数

定义和用法
str_split() 函数把字符串分割到数组中。

语法
str_split(string,length)参数 描述
string 必需。规定要分割的字符串。
length 可选。规定每个数组元素的长度。默认是 1。

说明
如果 length 小于 1,str_split() 函数将返回 false。

如果 length 大于字符串的长度,整个字符串将作为数组的唯一元素返回。
例子
例子 1

 代码如下 复制代码
<?php
print_r(str_split("hello"));
?>

输出:

 代码如下 复制代码
array
(
[0] => h
[1] => e
[2] => l
[3] => l
[4] => o
)

例子 2

 代码如下 复制代码
<?php
print_r(str_split("hello",3));
?>

输出:

 代码如下 复制代码
array
(
[0] => hel
[1]


preg_split -- 用正则表达式分割字符串
说明
array preg_split ( string pattern, string subject [, int limit [, int flags]])


返回一个数组,包含 subject 中沿着与 pattern 匹配的边界所分割的子串。

如果指定了 limit,则最多返回 limit 个子串,如果 limit 是 -1,则意味着没有限制,可以用来继续指定可选参数 flags。

flags 可以是下列标记的任意组合(用按位或运算符 | 组合):


preg_split_no_empty
如果设定了本标记,则 preg_split() 只返回非空的成分。

addslashes: 字符串加入斜线。
bin2hex: 二进位转成十六进位。
chop: 去除连续空白。
chr: 返回序数值的字符。
chunk_split: 将字符串分成小段。
convert_cyr_string: 转换古斯拉夫字符串成其它字符串。
crypt: 将字符串用 des 编码加密。
echo: 输出字符串。
explode: 切开字符串。
flush: 清出输出缓冲区。
get_meta_tags: 抽出文件所有 meta 标记的资料。
htmlspecialchars: 将特殊字符转成 html 格式。
htmlentities: 将所有的字符都转成 html 字符串。
implode: 将数组变成字符串。
join: 将数组变成字符串。
ltrim: 去除连续空白。
md5: 计算字符串的 md5 哈稀。
nl2br: 将换行字符转成 <br>。
ord: 返回字符的序数值。
parse_str: 解析 query 字符串成变量。
print: 输出字符串。
printf: 输出格式化字符串。
quoted_printable_decode: 将 qp 编码字符串转成 8 位字符串。
quotemeta: 加入引用符号。
rawurldecode: 从 url 专用格式字符串还原成普通字符串。
rawurlencode: 将字符串编码成 url 专用格式。
setlocale: 配置地域化信息。
similar_text: 计算字符串相似度。
soundex: 计算字符串的读音值
sprintf: 将字符串格式化。
strchr: 寻找第一个出现的字符。
strcmp: 字符串比较。
strcspn: 不同字符串的长度。
strip_tags: 去掉 html 及 php教程 的标记。
strips教程lashes: 去掉反斜线字符。
strlen: 取得字符串长度。
strrpos: 寻找字符串中某字符最后出现处。
strpos: 寻找字符串中某字符最先出现处。
strrchr: 取得某字符最后出现处起的字符串。
strrev: 颠倒字符串。
strspn: 找出某字符串落在另一字符串遮罩的数目。
strstr: 返回字符串中某字符串开始处至结束的字符串。
strtok: 切开字符串。
strtolower: 字符串全转为小写。
strtoupper: 字符串全转为大写。
str_replace: 字符串取代。
strtr: 转换某些字符。
substr: 取部份字符串。
trim: 截去字符串首尾的空格。
ucfirst: 将字符串第一个字符改大写。
ucwords: 将字符串每个字第一个字母改大写。


php语言中的字符串函数也是一个比较易懂的知识。今天我们就为大家总结了将近12种php字符串函数,希望对又需要的朋友有所帮助,增加读者朋友的php知识库。
1查找字符位置函数:
int strpos(string $str, mixed search,[int]):查找search在$str中的第一次出现的位置(从int开始,忽略int之前的任何值);
int stripos(string $str,string search,[int]):函数返回字符串在另一个字符串中第一次出现的位置。该函数对大小写不敏感
strrpos($str,search,[int]):查找search在$str中的最后一次出现的位置从int(从int开始,忽略int之前的任何值);

2、提取子字符函数(双字节)
submit($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_irreplace(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[,'<p>']):去除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() 去除字符串中的反斜杠

比较两个字符串是否相等,最常见的方法就是使用“===”来判断,至于它和“==”的区别,简单来说就是前者强调“identical”类型也要求一样;后者要求“equal”,值相同就可以了,参考【1】。或者使用strcmp来判断,但是这个能够告诉你两个字符串是否相等,但是无法告诉你在那里不同。我的思路是单字符串分割为一个个字母(character),这样比较就能精确知道在那个位置不同了。分隔字符串,使用“str_split”就可以了,语法参考【2】。然后输出结果数组,好处是连空格也会作为数组的元素。我之前的例子就是因为前一个字符串包含2个空格,而后一个只有一个。但是输出的时候看到的显示都是一样的。 也可以按照其他分隔符进行分割,如“explode”或者“preg_split”,

  一般能用 !=, == 比较两个对象是否相等,只所以说是两个对象,是因为他们不一定全部为字符串,也能为整型等等。比如

 代码如下 复制代码

$a = "joe";
$b = "jerry";
if ($a != $b)
{
    echo "不相等";
}
else
{
    echo "相等";
}

  如果用 !==,===(能看到多了一个等号)比较的话,两个对象的类型要严格相等才能返回true;否则用==,!=则会将字符串自动转换成相应的类型,以便进行比较.

 代码如下 复制代码
22 == "22"; // 返回 true
22 === "22"; // 返回false

  正因为这样,所以我们的程式时常会发生一些想不到的“意外”:

0 == "我爱你"; // 返回true
1 == "1 我爱你";// 返回true

  php教程里更有这样一组用于字符串比较的函数:strcmp,strcasecmp,strncasecmp(), strncmp(),他们都是如果前者比后者大,则返回大于0的整数;如果前者比后者小,则返回小于0的整数;如果两者相等,则返回0.他们比较的原理和其他语言的规则都是相同的。

strcmp是用于区分大小写(即大小写敏感)的字符串比较:
echo strcmp("abcdd", "abcde"); // 返回 1 (>0), 比较的是 "b"和"b"

strcasecmp用于不区分大小写的字符串比较:
echo strcasecmp("abcdd", "abcde"); // 返回 -1 (<0), 比较的是"d"和"e"

strncmp用于比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
echo strncmp("abcdd", "abcde", 3); // 返回 1 (>0), 比较了 abc 和 abc

strncasecmp用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
echo strncasecmp("abcdd", "abcde", 3); // 返回 0, 比较了 abc 和 abc, 由于不区分大小写,所以两者是相同的。

  更有一种情况是单单比较字符串大小,达不到我们预定的需求,比如照常理 10.gif 会比 5.gif 大,但如果应用上面几个函数,就会返回 -1,即表示 10.gif比5.gif,针对这种情况,php提供了两个自然对比的函数strnatcmp,strnatcasecmp:

echo strnatcmp("10.gif", "5.gif"); // 返回 1 (>0)
echo strnatcasecmp("10.gif", "5.gif"); // 返回 1 (>0)

PHP里用于查找或匹配或定位的函数非常多,他们都有不同的意义。这里只讲述用得比较多的strstr,stristr.后者和前者的功能,返回值都相同,只是不区分大小写。

strstr("母字符串", "子字符串")用来查找子字符串在母字符串中第一次出现的位置,并返回母字符串中从子字符串开始到母字符串结束的部分。比如

echo strstr("abcdefg", "e"); //将输出 "efg"

  如果未找到子字符串,则返回空。因为能用来判断一个字符串中是否含有另外一个字符串:

 代码如下 复制代码
$needle = "iwind";
$str = "i love iwind";
if (strstr($str, $needle))
{
    echo "里面有 iwind";
}
else
{
    echo "里面没有 iwind";
}
将会输出"里面有 iwind"

preg_match正则

preg_match 兼容的正则表达式语法中  代表单词边界
所以:下面应该是可以???

 代码如下 复制代码

$a="test,admin,abc";

$b="te";

$exist=preg_match("/{$b}/",$a);

if($exist)

{

echo "存在";

}else

{
echo "不存在";
}


看一下相关说明

int preg_match ( string pattern, string subject [, array matches [, int flags]] );
preg_match() 返回 pattern 所匹配的次数。要么是 0 次(没有匹配)或 1 次,因为 preg_match() 在第一次匹配之后将停止搜索。preg_match_all() 则相反,会一直搜索到 subject 的结尾处。如果出错 preg_match() 返回 false。
示例:

 代码如下 复制代码

<?php

$a = "abcdefgabcdefaaag";

preg_match('|abc([a-z]+)g|isu',$a,$out1);

preg_match_all('|abc([s]+)g|isu',$a,$out2);

echo "<pre>";

print_r($out1);

 

print_r($out2);

echo "</pre>";

?>

写法:
使用双引号时和单引号的不同

 代码如下 复制代码

<?php

preg_match_all("/href="(.*)"/isu",$contents,$out);

preg_match_all('|href="(.*)"|isu',$contents,$out);

?>

php 字符串长度函数,在php测试字符串长度的函数有二个,一个是strlen,另一个是mb_strlen前一个默认是支持,后一个需要开启一个插件,下面我们来介绍一下二个函数的区别与应用方法。

php strlen() 函数
定义和用法
strlen() 函数返回字符串的长度。

语法
strlen(string)参数 描述
string 必需。规定要检查的字符串。

 代码如下 复制代码
<?php
echo strlen("www.111cn.net!"); //13
echo strlen("中国人!");//6 strlen得到的值是汉字个数的2倍
?>

尝试将php_mbstring.dll复制到%windows%目录下

 代码如下 复制代码
<?
$str = '懂php的都知道strlen与mb_strlen是求字符串长度的函数';
echo strlen($str)'.<br />'.mb_strlen($str,'utf-8');
?>

运行上述代码,返回值如下:
66
34

懂php的都知道strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别。
先看这样一段代码吧(先决条件是:字符编码为utf-8):

[!--infotagslink--]

相关文章

  • C#中截取字符串的的基本方法详解

    这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
  • c#中判断字符串是不是数字或字母的方法

    这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
  • PostgreSQL判断字符串是否包含目标字符串的多种方法

    这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
  • 详解C++ string常用截取字符串方法

    这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • php字符串按照单词逐个进行反转的方法

    本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
  • 运行vbs脚本报错无效字符、中文乱码的解决方法(编码问题)

    今天在写一个vbs的时候,发现中文乱码,后来写好代码正常运行的代码压缩一下给了同事,发现报无效字符,经过验证后发现原来是编码的问题导致,这里就为大家分享一下...2020-06-30
  • MySQL 字符串拆分操作(含分隔符的字符串截取)

    这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
  • C#实现字符串转换成字节数组的简单实现方法

    这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
  • 使用list stream: 任意对象List拼接字符串

    这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
  • C# 16 进制字符串转 int的方法

    这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 获取中文字符串的实际长度代码

    JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: 复制代码 代码如下: function strLength(str) { var realLength = 0, len = str.length, charCode = -1;...2014-06-07
  • PostgreSQL 字符串处理与日期处理操作

    这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
  • php 中英文混合字符串截取

    文章介绍一个实用的函数,我们如果用php substr来截取字符在中文上处理的很有问题,今天自己写了一个比较好的中文与英文字符截取的函数,有需要的朋友可以参考下。 ...2016-11-25
  • C#实现对字符串进行大小写切换的方法

    这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • c#将字节数组转成易读的字符串的实现

    这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • python使用pandas按照行数分割表格

    本文主要介绍了python使用pandas按照行数分割表格,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-13
  • C#获取字符串后几位数的方法

    这篇文章主要介绍了C#获取字符串后几位数的方法,实例分析了C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 解决vue字符串换行问题(绝对管用)

    这篇文章主要介绍了解决vue字符串换行问题(绝对管用),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-06
  • C#判断一个字符串是否是数字或者含有某个数字的方法

    这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 【C#基础】Substring截取字符串的方法小结(推荐)

    这篇文章主要介绍了Substring截取字符串方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25