PHP中explode与split的区别分析

前几日在接纳split时相遇有个别标题。依然对函数精通不深切,特写出来做个暗号

1
字符串分割——split(卡塔尔(قطر‎函数和preg_split()函数

八个函数都以把三个字符串分割成一个数组,但各有各的用法,上面我们就相继来看关于php
explode split str_split函数差别与实例吧。
*/
$str =”id_99_cn.html”;
$array = explode(‘_’,$str);
print_r($array);
/*
array
(
    [0] => id
    [1] => 99
    [2] => cn.html
)
*/

首先来看下八个方式的概念:

split —
用正则表明式将字符串分割到数组中——貌似PHP5.3以央月不赞成接受
array split ( string $pattern , string
$string [, int $limit ] )

//函数原型:array split (string $pattern, string $string [, int
$limit])

澳门新浦京电子游戏,函数原型:array split (string $pattern, string $string [, int $limit])

preg_split
— 通过一个正则表明式分隔字符串

$split = split(‘_’,$str);
print_r($split);
/*
array
(
    [0] => id
    [1] => 99
    [2] => cn.html
)
*/

函数原型:array explode ( string $separator, string $string [, int
$limit])

array preg_split ( string $pattern ,
string $subject [, int $limit = -1 [, int $flags = 0 ]] )

//str_split(卡塔尔(قطر‎ 函数的字符串分割成一个数组。

初看未有吗分歧,貌似作用都一成不改变。笔者就犯了那一个荒谬。
请注意四个函数的首先个参数string $pattern和string
separator,一个是$pattern表达是正则字符串,叁个是$separator是普通字符串。

相符点:都以用正则表明式来分割字符串。
split(卡塔尔国用起来更轻松,比如分割”二〇〇九-12-16
15:48:12″,split能够如此写split([‘- :’])

$str_split = str_split($str,2);
print_r($str_split);
/*
array
(
    [0] => id
    [1] => _9
    [2] => 9_
    [3] => cn
    [4] => .h
    [5] => tm
    [6] => l
)

看下边包车型客车代码:

而preg_split(卡塔尔(قطر‎要复杂些,就得那样写preg_split(“/[s-:]/”)
原因是:split(State of Qatar只帮忙POSIX风格的正则表达式,而preg_split只支持Perl风格的正则表达式
POSIX风格要比Perl风格的简便,但它不是二进制安全的

本站原创作品转发阐明来源

$test = end(explode('.', 'abc.txt')); 
echo $test;//output txt

对了,还会有个explode(State of Qatar,和方面五个函数差别,它是用字符串来分割字符串。

换成:

array explode ( string $delimiter ,
string $string [, int $limit ] )

$test1 = end(split('.','abc.txt')); 
echo $test1;//no output

使用一个字符串分割另一个字符串

用split的科学做法是:加转义符号

注:网络有为数不少二进制安全的分解,作者深感上面那一个解释对于精通地点那句话有帮衬:

$test1 = end(split('.','abc.txt')); 
echo $test1;//output txt

二进制安全的函数只关注二进制化的字符串,不爱抚字符串的求实格式,它只会严苛的根据二进制的数据开展存取,不会以某种特殊格式深入分析数据。

分析:”.” 符号是正则表明式的重要性字所以split无效,而explode有效。

2 mysqli::fetch_array
和mysqli::fetch_row的区别

 mysqli_result::fetch_row() 

从结果聚焦得到一行作为枚举数组

mixed mysqli_result::fetch_array ([
int $resulttype = MYSQLI_BOTH ] ) 

从结果聚焦得到一行作为关周密组,或数字数组,或二者兼有

手册说两者品质平时没有太大的界别,后边一个是后人的巩固版。

3 单引号和双引号
php的二种字符串类型,单引号和双引号。
单引号的字符串是纯文本(真正的文件),它会不经修改而直接发送给浏览器,不管是变量名称恐怕其余任何公文。
双引号的字符串,php会尝试计算双引号字符串,在那之中的变量名称将被变量值所代替。
在这里处,变量、字符串、文本和原始数据的定义不能歪曲:
变量是意味着数据的标记,变量用变量名称表示,表示数据的暗记
而单引号的字符串则是文件,自己(字面值)正是原有数据
重大是掌握文本和变量的区分,文本是数额,变量是多少的标志。

能够看看《PHP和MySQL
Web开采(原书第4版卡塔尔(قطر‎》中文版第12页对于字符串的介绍。

参考:

《PHP和MySQL
Web开荒(原书第4版State of Qatar》汉语版第12页,卢克 Welling & 洛拉 Thomson著

php二进制字符串的含义 

天涯论坛:二进制安全部是如何意思?

发表评论

电子邮件地址不会被公开。 必填项已用*标注