ddxiami

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: 黄振国

[细说PHP] 第11章字符串处理

[复制链接]
 楼主| 发表于 2013-8-7 14:19:10 | 显示全部楼层
函数htmlentities()

<?php
        $str = "一个 'quote' 是 <b>bold</b>";

        // 输出: &Ograve;&raquo;&cedil;&ouml; 'quote' &Ecirc;&Ccedil; &lt;b&gt;bold&lt;/b&gt;
        echo htmlentities($str);

        // 输出: 一个 &#039;quote&#039; 是 &lt;b&gt;bold&lt;/b&gt;
        echo htmlentities($str, ENT_QUOTES,gb2312);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-7 14:38:22 | 显示全部楼层
htmlspecialchars()函数与stripslashes()函数相结合处理表单中提交的数据

<html>
        <head>
                <title>HTML表单</title>
        </head>
       
        <body>
                <form action="" method="post">
                        请输入一个字符串:
                        <input type="text" size="30" name="str" value="<?php echo html2Text($_POST['str']) ?>">
                        <input type="submit" name="submit" value="提交"><br>
                </form>
                <?php
                        //如果用户提交表单下面代码将被执行
                        if(isset($_POST["submit"])) {      
                //输出原型<b><u>this is a \"test\"</u></b>,浏览器对其解析
                                echo "原型输出:".$_POST['str']."<br>";
     
                      //转换为实体:&lt;b&gt;&lt;u&gt;this is a \&quot;test\&quot;&lt;/u&gt;&lt;/b&gt;
                                echo "转换实例:".htmlspecialchars($_POST['str'])."<br>";       

                //删除引号前面的斜线:<b><u>this is a "test"</u></b><br>
                                echo "删除斜线:".stripslashes($_POST['str'])."<br>";       

                //输出:&lt;b&gt;&lt;u&gt;this is a &quot;test&quot;&lt;/u&gt;&lt;/b&gt;
                                echo "删除斜线和转换实体:".html2Text($_POST['str'])."<br>";
                        }
                       
                        //自定一个函数,复合的方式处理表单提交的数据
                        function html2Text($input) {     
                                //返回两个函数结合处理的字符串
                                return htmlspecialchars( stripslashes( $input ) );  
                        }
                ?>       
        </body>
</html>
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-7 14:40:42 | 显示全部楼层
函数strip_tags()

<?php
        $str = "<font color='red' size=7>Linux</font> <i>Apache</i> <u>Mysql<u> <b>PHP</b>";
       
        echo strip_tags($str);                      //删除了全部HTML标签,输出:Linux Apache Mysql PHP
        echo strip_tags($str, "<font>");                   //输出<font color='red' size=7>Linux</font> Apache Mysql PHP
        echo strip_tags($str, "<b><u><i>");          //输出Linux <i>Apache</i> <u>Mysql<u> <b>PHP</b>
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-7 14:49:01 | 显示全部楼层
函数strrev()

<?php
        echo strrev("http://www.lampbrother.net");            //反转后输出:ten.rehtorbpmal.www//:ptth
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-7 14:49:32 | 显示全部楼层
函数number_format()

<?php
        $number = 123456789;                                   //声明一个数字
        echo number_format($number);                           //输出123,456,789千位分隔的字符串
        echo number_format($number, 2);                 //输出123,456,789.00小数点后保留两数小数
        echo number_format($number, 2, ",", ".");   //输出123.456.789,00 千位使用(.)分隔了,并保留两位小数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-7 14:50:00 | 显示全部楼层
函数md5()

<?php
        $password = "lampbrother";                    //定义一个字符串作为密码,加密后保存到数据库中
        echo md5($password)."<br>";             //输出MD5加密后的值:5f1ba7d4b4bf96fb8e7ae52fc6297aee

        //将输入的密码和数据库保存的匹配
        if(md5($password) == '5f1ba7d4b4bf96fb8e7ae52fc6297aee') {         
                  echo "密码一致,登录成功";      //如果相同则会输出这条信息
          }
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-7 14:50:39 | 显示全部楼层
按字节顺序进行字符串比较

<?php       
        $userName = "Admin";                                        //声明一个字符串作为用户名
        $password = "lampBrother";                                     //声明一个字符串作为密码

        //不区分大小写地比较,如果两个字符串相等返回0
        if(strcasecmp($userName, "admin") == 0) {        
                echo "用户名存在";
        }
           //将两个比较的字符串使用相应的函数转成全大写或全小写后,也可以实现不区分大小写地比较
           if( strcasecmp(strtolower($userName), strtolower("admin")) == 0 ) {   
                echo "用户名存在";
        }

        //区分字符串中字母的大小写比较
        switch(strcmp($password, "lampbrother")) {
                case 0:                                             //两个字符串相等则返回0
                        echo "两个字符串相等<br>";  break;
                case 1:                                            //第一个字符串大时则返回1
                        echo "第一个字符串大于第二个字符串<br>";  break;
                case -1:                                           //第一个字符串小时则返回-1
                        echo "第一个字符串小于第二个字符串<br>";  break;
        }
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-7 14:52:40 | 显示全部楼层
按自然排序进行字符串比较

<?php
        //定义一个包含数字值的数组
        $files = array("file11.txt", "file22.txt","file1.txt", "file2.txt");        
        /**
                自定义的函数,提供两种排序方法
                @param        array         $arr                为被排序数组
                @param        boolean        $select        选择使用哪个函数进行比较,true为strcmp(), false为strnatcmp()函数
                @return        array                        返回排序后的数组
        */
        function mySort($arr, $select=false) {  
                for($i=0; $i<count($arr); $i++) {
                        for($j=0; $j<count($arr)-1; $j++) {
                                //如果第二个参数为true则使用strcmp()函数比较大小
                                if($select) {   
                                        //前后两个值比较结果大于0则交换位置
                                        if(strcmp($arr[$j], $arr[$j+1]) > 0) {
                                                $tmp = $arr[$j];
                                                $arr[$j] = $arr[$j+1];
                                                $arr[$j+1] = $tmp;
                                        }
                                //如果第二个参数为false则使用strnatcmp()函数比较大小
                                }else{
                                        //如果比较结果大于0交换位置
                                        if(strnatcmp($arr[$j], $arr[$j+1]) > 0) {       
                                                $tmp = $arr[$j];
                                                $arr[$j] = $arr[$j+1];
                                                $arr[$j+1] = $tmp;
                                        }
                                }
                        }
                }
                return $arr;                         //返回排序后的数组
        }
        print_r(mySort($files, true));  //选择按字典顺序排序: file1.txt  file11.txt  file2.txt  file22.txt
        print_r(mySort($files, false)); //选择按自然顺序排序: file1.txt  file2.txt  file11.txt  file22.tx
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|技术文档库 ( 闽ICP备15017263号-2 )|网站地图

GMT+8, 2025-5-19 00:46 , Processed in 0.035958 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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