您的位置:威尼斯官方网站 > 威尼斯正规官网 > PHP引擎无法区分字符和数组

PHP引擎无法区分字符和数组

发布时间:2020-01-02 18:07编辑:威尼斯正规官网浏览(145)

    豆蔻梢头、字符串类型的性状

    1、PHP是弱类型语言,别的数据类型日常都得以平素动用于字符串函数操作。

    <?php
    echo substr("123456",2,4);  //输出345
    echo substr(123456,2,4);    //输出345
    echo hello;                 //先查找hello常量,若没找到,将hello看做字符串使用
    ?>
    

    2、字符串能够看作“数组”,是字符的集聚。

    <?php
    $str = "www.jb51.net";
    echo $str[0];
    echo $str[1];
    echo $str[2];
    ?>
    

    可是字符串不是真的数组,不可能运用数组的函数.如count($str卡塔尔不会回去字符串长度。PHP引擎不可能区分字符和数组,产生二义性。自PHP4起,已经用花括号代替方括号。

    <?php
    //为保证向后兼容,方括号仍然可以使用
    $str = www.jb51.net;
    echo $str{0};
    echo $str{1};
    echo $str{2};
    ?>
    

    3、双引号变量拆解剖判

    在PHP中,当用双引号或然定界符定义字符串时,个中的变量会被深入分析。

    <?php
    $arr = array('name' => "dwqs",'add' => "www.ido321.com");
    echo "$arr[name]";  //可以解析,但是在方括号中不能使用引号
    //echo "$arr['name']";  错误
    echo "{$arr['name']}";  //可以解析,用花括号包含元素,name不带引号也是可以的
    //假设存在对象$square
    echo "$square->width"; //可以解析
    echo "$square->width00 cent"; //不可以解析,用花括号解决
    echo "{$square->width}width00 cent"; //可以解析
    ?>
    

    二、字符串输出函数

    图片 1

    三、常用的字符串格式函数

    图片 2

    PS:PHP的字符串管理函数大部分不对源字符串做修正,而是回到新的字符串

    四、正则表明式

    正则表明式描述了生机勃勃种字符串相称的方式,通过这一个格局在特定的函数中对字符串实行相称、查找、替换和分隔等操作,由原子、元字符和方式改进符三局地构成的文字形式。

    在PHP中,有两套正则的管理函数库:PCRE和POSIX。后面一个以preg_前缀命名,与Perl宽容;后面一个以ereg_前缀命名。二者功能相同,但PCRE的频率略高。

    与Perl语言包容的正则表明式管理函数:

    图片 3

    1、语法

    1.1 定界符:在与Perl宽容的正则函数中利用形式时,必得给格局加上定界符。除了字母、数字和反斜线(卡塔尔(قطر‎之外的其余字符都能够视作定界符号

    <?php
    //以下正则合法
    echo $m1 = '/</w+/';
    echo $m2 = '|(d{3})-d|Sm';
    echo $m3 = '!^(?i)php[34]!';
    echo $m4 = '{^s+(s+)?$}';
    ?>
    

    1.2 原子:原子包罗了日常字符,如字母、数字;非打字与印刷字符,如空格、回车;特殊字符和元字符,如引号、*、+等,必须用””实行转义;自定义原子表,如[apj]、[a-z];通用字符类型,如d、D。

    <?php
    //下面二者等价,匹配e-mail
    $mail1 = '/^[0-9a-zA-Z]+@[0-9a-zA-Z]+(.[0-9a-zA-Z]+){0,3}$/';
    $mail2 = '/^w+@w+(.w+){0,3}$/';
    ?>
    

    1.3 元字符:用于营造正则表明式的有所优异含义的字符。Perl能够行使各样元字符来搜索相称,如*、+、?.不足为奇的元字符如下

    图片 4

    1.4 形式改善符:在正则的定界符之外使用,扩充正则在合作、替换等地方的功能。

    图片 5

    2.与Perl包容的正则表明式函数

    2.1 preg_match(string pattern,string subject[,array matches]卡塔尔(قطر‎:用于对字符串的探索和万分。参数表达:

    pattern是正则,subject是亟需管理的字符串,可选的matches用于保存于pattern的逐条子格局的相配结果,matches[0]保存了与pattern相称的完好内容,matches[1]保存了pattern中首先个小括号中匹配的剧情,就那样推算。

    <?php
    header("content-type:text/html;charset=utf8");
    $pattern = '/(http)://(www).([^./]+).(com|net|org)/i';
    $subject = "我的博客:http://www.ido321.com";
    if(preg_match($pattern, $subject,$matches)){
    echo "搜索的URL是:".$matches[0]."<br/>";  //数组第1个元素保存整个匹配结果
    echo "URL中的协议是:".$matches[1]."<br/>";//数组第2个元素保存第1个字表达式
    echo "URL中的主机是:".$matches[2]."<br/>";//数组第3个元素保存第2个字表达式
    echo "URL中的域名是:".$matches[3]."<br/>";//数组第4个元素保存第3个字表达式
    echo "URL中的顶域是:".$matches[4]."<br/>";//数组第5个元素保存第4个字表达式
    }
    ?>
    

    结果

    图片 6

    preg_match_all()与preg_match(卡塔尔国函数相像,差异的是后边一个会直接合营到字符串末尾,前者在首先次相称后就终止相配。

    2.2 preg_grep(string pattern,array iput卡塔尔(قطر‎:相配数组中的成分,再次回到与正则相配的数组单元。参数表达:

    pattern是正则,input是急需格外的数组。

    <?php
    $arr = array('Linux RedHat9.0','Apache2.2.9','MySQL5.0.51','PHP5.2.6','LAMP','100');
    $version = preg_grep('/^[a-zA-Z]+(d|.)+$/',$arr);
    //输出:Array([1]=>Apache2.2.9 [2]=>MySQL5.0.51 [3]=>PHP5.2.6)
    print_r($version); 
    ?>
    

    2.3 preg_replace(mixed pattern,mixed replacement,mixed subject[,int limit]卡塔尔(قطر‎:字符串替换。表明:

    该函数会在subject中检索与pattern的相配项,并用replacement替换。limit用于限定相配的次数,即替换的次数。

    <?php
    $pattern = '/<[/!]*?[^<>]*?/is';
    $text = '这个文本有<b>粗体</b>和<u>带有下划线</u>以及<i>斜体</i>';
    echo preg_replace($pattern,"",$text);  //将所有HTML标记替换为空
    echo preg_replace($pattern,"",$text,2); //值替换前2个HTML标记
    ?>
    

    2.4 preg_split(string pattern,string subject[,int limit[,int flags]]卡塔尔国:对字符串举办私分。表明:

    函数重返四个数组。数组成分满含subject中与pattern相称作为边界所分割的字符串,limit含义见2.3,flags含义请参见文书档案。

    <?php
    //按任数量的空格分割字符串
    $kerwords = preg_split("/[s,]+/","hypertext language,programming");
    //输出:Array([0]=>hypertext [1]=>language,[2[=>programming)
    print_r($kerwords);
    ?>
    

    本文由威尼斯官方网站发布于威尼斯正规官网,转载请注明出处:PHP引擎无法区分字符和数组

    关键词: