威尼斯手机平台登陆-官方网站登录

威尼斯手机平台登陆为您带来世界三大博彩公司最新相关资讯,威尼斯官方网站登录充分考虑到不同地域网民的不同需求,威尼斯手机平台登陆良好的用户界面,人性化的操作,实用的功能设计使其广泛受到欢迎,推动实体出版、影视、动漫、游戏等相关文化产业的发展。

您的位置:威尼斯手机平台登陆 > 最新文章 > 字符串分割——split()函数和preg,还是对函数理解不深刻

字符串分割——split()函数和preg,还是对函数理解不深刻

发布时间:2020-03-04 19:15编辑:最新文章浏览(193)

    今天在使用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()用起来更简单,比如分割"2008-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()只支持POSIX风格的正则表达式,而preg_split只支持Perl风格的正则表达式
    POSIX风格要比Perl风格的简单,但它不是二进制安全的

    本站原创文章转载注明来源于

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

    对了,还有个explode(),和上面两个函数不同,它是用字符串来分割字符串。

    换成:

    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版)》中文版第12页,Luke Welling & Laura Thomson著

    php二进制字符串的含义 

    知乎:二进制安全是什么意思?

    本文由威尼斯手机平台登陆发布于最新文章,转载请注明出处:字符串分割——split()函数和preg,还是对函数理解不深刻

    关键词:

上一篇:没有了

下一篇:没有了