设为首页 收藏本站
查看: 392|回复: 0

[经验分享] php学习笔记2

[复制链接]

尚未签到

发表于 2017-3-24 10:49:57 | 显示全部楼层 |阅读模式
主要内容:总结了第四章,主要关于字符串处理。参考书籍《精通php5 应用开发》。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
(1)字符串运算符
其他运算符好多与java类似。不过字符串链接符号就不同:php中用'.'

   

2)字符串分析

在某些语言里字符串是作为字符数组处理的,而php把字符串作为一种基本的数据类型来处理。因此,php使用特定的函数对字符串进行分析。

    基本的字符串分析函数:

    strlen():计算字符串的长度

    substr():取子串

    strpos()strrpos():计算子字符串出现的位置

    eg:

$str = "hello php world! ";

       echo "<br>"; 

       echo substr($str,10,4);

       echo "<br>"; 

       echo substr($str,10);

       echo "<br>"; 

       echo strpos($str,"l");

       echo "<br>"; 

       echo strrpos($str,'l');

       echo "<br>"; 

    strpos方法是取第一个匹配位子,strrpos方法是取最后一个匹配的位子。而这两个方法需要注意一点:当

    没有查询到特定字符串出现的位置时,函数将返回FALSE。因此判断一个字符串中是否含有另外一个子串的正确方法是

    使用恒等“===”

    eg:

    if(strpos($str,"w")===false)

    {//...}

3)取字符串偏移(访问字符串中的字符)

如上的方法基本能对字符进行基本操作。

但是下面介绍一些方法来方便的访问字符串的字符

   

    一个非常好用的方法那就是使用{}括号来取偏移字符

    eg:

    $str= 'this is a book.';

    echo $str{3};//output 's'

    利用这个方法反序排列字符串:

    $str="this is a book.";

    $len = strlen($str);//这里前面一直出错,一个错误是因为 $len 前加了个int

    for($i=$len-1;$i>=0;$i--)

    {

       echo $str{$i};

    }

4)字符串中的分割与连接


    分隔字符串,可以使用函数explode(),该函数有三个参数,第一个参数设置一个分割字符(串)。第二个参数指定所要操作的字符串。第三个参数可选,指定最多将字符串分割为多少子串。该函数返回一个由被分割的子串组成的数组。

eg

       <?php
       $this_year=2007;

       $text=<<<EOT

       祝无双,F,1982,广东,普通职员

       李大嘴,M,1981,河北,普通职员

       佟香玉,F,1980,山西,项目经理

EOT;
       $lines=explode("\n",$text);

       foreach($linesas$userinfo)

       {

           $info=explode(",",$userinfo,3);

           $name=$info[0];

           $sex=($info[1]=="F")?"":"";

           $age=$this_year-$info[2];        

           echo"姓名:".$name." ".$sex."年龄:".$age."<br>";

       }

     ?>


关于定界符<<<,字符串必须包含在一组定界符内。细节结束符号必须顶格。

刚开始看书上的EOT ,EOD 以为有什么区别,结果我试了下,随便写。前后对应,符合标识符的命名规则就行。


【php中explode对应JAVA、javascript里的split方法。】

连接字符串 implode() 函数,它的别名叫join
eg:
    <?php

        $fruits=array('apple','banana','pear');

        $tem=join(",",$fruits);

        echo$tem;

     ?>
javascript里面有join方法,也能很方便将数组组合为字符串。

5)字符串的整理
删除字符串的空白,trim().
       <?php
       $str="         sdf";

       echostrlen($str);

       echo"<br>";

       echostrlen(trim($str));

     ?>
trim 删除的是前后空格。

ltrim rtrim两个函数也是删除空格,一个删除左边空格,一个删除右边空格。

而且删除的是单字节空格,当这些空格是全角空格这些函数是没有作用的。
【?但双字节空格在程序里怎么分的?】

(6)字符串的填补

str_pad 函数用于进行字符串的填补工作,
第一个参数是处理的字符串对象,第二参数是总长度,第三个参数是指长度不够总长以什么符号来填补,第四个参数为填补左边还是右边(默认不写为填补右边)。
eg

    <?php

       $prices=array(

       "人员工资"=>42840,"房租"=>4000,"维修费"=>925,);

       $sum=0;

       foreach($pricesas$title=>$pay)

       {

           $sum+=$pay;

           echostr_pad($title,15,"=");

           echostr_pad($pay,15,"=",STR_PAD_LEFT);

           echo"<br>";

       }

       echostr_repeat("-",30),"<br>";

       echostr_pad("总支出",15,"=");     

       echostr_pad($sum,15,"=",STR_PAD_LEFT);

       echo"<br>";

     ?>


7)字符串的反转

前面曾经讲过字符串反转的例子,实际上php已经内置了这个函数。strrev()函数可以对字符串中的字符反序排列,这种反序是按照字节进行的。

    <?php

        echo strrev("hello world !");

     ?>


(8)字符串大小写转换

关于字符串大小写的转换函数,主要有以下四个。

strtoupper():将给定的字符串全部转换为大些字母

strtolower():将给定的字符串全部转换为小写字母

ucfirst()将给定的字符串的首字母转换为大些,其余不变。

ucwords():将给定的字符串中全部单词的首字母转换为大写。字符串中的单词均以空白分隔。

    <?php

       $str = "Tom Is A PHP Programer.";

       //全部转换为小写

       $lower = strtolower($str);

       echo $lower;

       //全部转换为大写

       $upper = strtoupper($str);

       echo $upper;

       //将整句首字母大写

       $string = 'hello php world!';

       echo ucfirst($string);

     ?>


9)字符串的比较


除了运算符:< > ===等,还可以有以下三种方法。


按字节比较: strcmp()strcasecmp()


放入strcmp的两个字符串将按照字节的ascii码值进行比较。从$str1 $str2 各自的首字节开始。如果前者小于后者返回负数,反之正数,相等为零。

【书上这里是错的,他写的是前者大于后者返回负数】

    <?php

       $test=strcmp("Thomas","Tom");

       echo$test;

       if(strcmp("大连","大庆")>0)

       {


           <span

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-354534-1-1.html 上篇帖子: PHP变量的变量 下篇帖子: php_unit___转转转转
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表