[高兴学php100天]第五天:string函数(上)

    添加时间:2013-5-6 点击量:

     重视:本文上午已经公布,因为排版题目特批改后重发。


    本期格言


           越高等的技巧越须要扎实的根蒂根基功。而学好根蒂根基功的首要前提是能沉住气和静下心。


           往往很多法度员太想一口吃一个肥婆而直接略过根蒂根基项目组去进修高等项目组,长久以往会导致越来越丧失持续学下去的决心信念,但迫于各类压力又不想放弃,于是气急攻心、愁闷纠结,最后血压越来越高,于是产生了一个法度员通病的描述词:“浮躁”。


    本期扯淡


          大师会发明很多法度员喜好买书自学。其实这是很好的习惯,有对IT行业的热忱和爱好就会有执着,有了执着就会想尽各类办法获取常识,经由过程无穷的量变后跳过了执着这个阶段,终于欣喜的发了然走出“法度员囧途”的出口,于是开端不顾一切的奋起创业。


           然而买书自学方面,一些有点初级技巧经验的法度员青年可能有个习惯:一般会先熟读第二章(有些书第一章烦琐到什么程度,大师懂的)。


          然后发明头两章挺简单,于是悄悄的往后跳过四到五章,这个跳跃很有意思,一般技巧类册本过了五、六章后,会开端讲实例和应用。


          于是该青年即速来了爱好,他决意先看应用实例,因为实例搞懂了明天就可以投简历了,效力多高啊。于是青年点上烟盘腿坐在床上,并警告室友把dota音效关掉。


          一个小时后,室友欢呼—“翻盘了”。再一看青年,已经在床上沉睡多时。


    正文项目组


    PHP的string函数


           很多javaer和C# Man经常会在网上互博,譬如”java好还是c#好”。这方面的话题甚至比”社会主义”好还是“本钱主义”好评论辩论的加倍激烈,加倍无底线。这时此中一个 javaer拿出java中对String对象的处理惩罚,传播鼓吹其有多么的高效力、布局多么的分明,C# Man不甘示弱也拿出string对象,传播鼓吹其有多么的便利、功能有多么的强大。这时一个PHPer不警惕点进了该贴,他弱弱的筹算参与跟帖,于是他列出 了PHP中string函数列表,刹时终结了上方(意)的排场。


           不得不说,PHP的string函数确切很是强大。很有名的wordpress把这些函数几乎用到了极致,而今天本文要扼要讲的就是关于PHP的string函数。


          string函数是php内置的。不需安装,不需引用任何函数库。这点很好,干净爽气爽快。我喜好,拿来就可以应用。


          接下来爆料几个常用的string函数,不常用的大师可以去查手册,小我建议有些函数底子不消去学,用的时辰再查即可。这点是java或者c#均不克不及媲美的。


    一、去空格,字符调换,输出


         这三个字符处理惩罚函数其实是太常见了,行浑家士把它们叫做“三宝”,为何叫三宝?那是因为把握这三宝加上一些html常识的确就可以立即速手做一个并不是希罕幼稚的页面了,同时根蒂根基上大项目组功能性函数都要用到这老三样。


       去空格:trim 。去除字符串前后空格


        用法也灰常的简单 如:



      ¥str=’   南京8秒绿灯走百米 中国式过马路孰之错   ‘;
    
    ¥str=trim(¥str); // 这里就达到了去除”南“和”错“两个字身边的空格


     


          这个函数看似简单,不过有个小学问。它不然则去除字符串两把的通俗空格,还能去除字符串两边的”\t(这货是全太阳系最憎恶的,白白净净的,不细心看还以 为是空格其实是一个tab)” “\0″也就是 NULL。”\n”换行符,”\x0B” – 纵向列表符, ”\r” – 回车。所以不要认为trim只去空格,其实php内核默默无闻的帮你干掉了很多字符。


         若是¥str=trim(¥str,’\t’); 则代表 这个trim只去除字符串前后的 \t也就是 tab,碰到通俗空格之类的是不会管的。


       输出:它存在 echo、print、printf 这三个首要函数


      至于差别:大师只需知道 print比echo稍微慢,printf可以格局化输出即可。不消搞的太清楚。若是什么都要搞得太明朗太计较,那么你何必去学php。


       这里只讲printf(print大师就忘怀这货吧,只需用echo即可)



       ¥str = “php”;
    
    ¥number = 100;
    printf(“高兴学%s %u天”,¥str,¥number);


     


        则会输出 高兴学php100天。遵守次序%s代表字符出,¥u代表数字。有几个%符号,后面就要跟几个参数。若是我倒过来写:



      printf(“高兴学%s %u天”,¥number,¥str); 那就会输出高兴学100 0天。
    


     


     


       php起首会把¥number当做字符串那100就是”100″,把”php”这个字符串当做数字型,大师知道把php变为数字是行不通的,所以就是0.


     字符串调换函数:str_replace


       这个函数很是的有效。怎么个有效发?网警会让你充沛知道你为什么要学会这个函数。你懂的。



     ¥str=str_replace(“敏感词汇”,”我爱故国”,”XXX@#%¥&%@这里此中有一个是敏感词汇“);
    


     


        这就代表我要把某些 敏感词汇调换成”我爱故国“。重视这个函数后面还有个count可选参数。几乎没什么用,那是用来计数用的,代表一共调换了几次。若是要实现只调换几个,那么要用正则表达式来做。本章临时不讲。


       有人说这个函数效力差。其实对于小网站小数据量的处理惩罚底子无所谓。若是你发明你的网站中简简单单的str_replace一个小字符串已经很影响办事器机能了。那么恭喜你,你要发大财了。


    二、strpos()


       这个函数也是很是有效的。类似于我们在其他说话中常用的indexof。


       譬如:¥str=’这是我又一个小我博客:网址是www.shenyisyn.org。’;


       那么:



      ¥i=strpos(¥str,”shenyisyn”);
    
    echo strval(¥i); //重视 这里为什么要用strval ,若是这个¥i 有值,那么它是int型的。
    //你直接输出在网页里,经由过程肉眼是看不到的。


     


         输出成果就是38。


     这里有个小学问


          我们不克不及简单的用 if(strpos(¥str,’shenyisyn’)) 来断定字符串中是否存在 “shenyisyn”这个词汇。


      因为假如



      ¥str=”shenyisyn是我的中文名缩写”;
    
    //那么 strpos(¥str,’shenyisyn’) 的真值是0。在php中0就是false。而实际上这个匹配是能匹配到的
    //所以你如许:
    if(strpos(¥str,’shenyisyn’)===false) 这就代表没有指定的’shenyisyn’这个字符串存在.


     


           在PHP中 ”===”的差别就比如高考时的”赤身搜检“,除了大夫确认我们==男生外,还要赤身”===”确认一下,万一你只是外表像罢了呢?也就说”===”连值带类型一路比对了。在php中0==false,然则0!===false


       这个函数是从左到右进行检索。反过来就是strrpos 它是从右往左,类似于lastindexof


       同样的.strpos是区分大小写。那么不区分的函数就是stripos。别的一个从右往左的货就是 strripos。


       用法一样只不过次序不一样。就不久不多赘述了。


    三、策画字符串长度-strlen


      这是一个很搞的函数。都怪秦始皇走的太早。若是同一了全世界就没这题目了。



      ¥str=”红十会”;
    
    echo strval(strlen(¥str));


     


      大师知道成果么?必然不是3,也不是6,而是9。


        大师看一下:strlen(“红十会”);  这里默认每个中文字符算3个字节。那么全部长度就是6。这里英文和数字都是1个字节。若是改成strlen(“红10会”);那么就是3+1+1+3=8个字节。


       若是要转换成大师耳目能具体的 英文1个字节,中文两个字节 那么要这么做



     echo mb_strlen(¥str,’utf8′); //这里要确保mbstring 这个库被开启。默认是不开启的。
    


     


        当然mb_strlen第二个参数还可所以gbk或者gb2312,这个不建议应用,这会让你对人生感觉苍茫的。何况如今开辟网站,应用utf8是根蒂根基之 道。若是你的网站连应用utf8如许的大字库都产生重大压力了而无常运转了,那么再一次恭喜你,你此次真的发了。既然发了,那就不在乎多买几台办事器 了。


    四、strip_tags 剥去html标识表记标帜


          官方中文申明应用了”剥去“,这个词用得好。用了剥去这个锋利的词语。什么叫剥去?比如你明明穿了一件很炫很酷的t恤去单位路上,忽然一个地痞跑过来把你的t恤剥去穿本身身上跑了,于是你只能光着身子回单位上班,到了单位同事把你笑了一成天。


          这个剥去就是这个结果。它只是剥掉,并没有过滤掉包含在html或者xml标识表记标帜内部的内容。



    ¥str=”一个老夫好心捐了10万<strong>被调用后</strong>,他很悲伤”;
    
    ¥str=strip_tags(¥str);
    echo ¥str; 则 会输出 一个老夫好心捐了10万被调用后,他很悲伤。


     


         这个函数的”剥去“结果在于,他不会把<strong>标识表记标帜中心的”被调用后“的字符删去,不然就变成了”一个老夫好心捐了10万,他很悲伤“。


        这个函数很是妙。妙到大大的降落了我们开辟web法度中的很多难度和繁琐的处所。正应了php就是为web而生的这句话。


     今天临时讲这几个函数。稍后持续。。。。


     如有不当之处,望积极斧正。


        注:本系列后续章节的转载除非本人自发,不然一律必须获得本人的书面赞成。不然本人保存投诉和鄙夷的权力。


     

    彼此相爱,却不要让爱成了束缚:不如让它成为涌动的大海,两岸乃是你们的灵魂。互斟满杯,却不要同饮一杯。相赠面包,却不要共食一个。一起歌舞欢喜,却依然各自独立,相互交心,却不是让对方收藏。因为唯有生命之手,方能收容你们的心。站在一起却不要过于靠近。—— 纪伯伦《先知》
    分享到: