PHP基础之 string 字符串函数

/*=================常用字符串处理函数==================
ltrim();        //去掉字符串左边的空格
rtrim();         //去掉字符串右边的空格
trim();         //去掉字符串两边的空格
strlen();        //获取字符串长度
strrev();        //反转字符串顺序
strtolower();    //所有字符转小写
strtoupper();    //所有字符转大写
ucfirst();        //将字符串中第一个字符改为大写
ucwords();        //将字符串中每个单词第一个字母改为大写
explode();    //使用一个字符串分割另一个字符串
implode();    //联合一组字符串
substr();        //取子字符串
strstr();        //返回字符串中某字符串开始处至结束的字符串
strrchr();        //返回组后出现的字符串到结束的位置。
strpos();        //寻找字符串中某字符最先出现的位置。
strrpos();        //寻找字符串中某字符最后出现的位置。
str_pad();        //字符串的填补函数
*/

/* 1、ltrim();        //去掉字符串左边的空格
     示例:*/
     $str1 = "  abc  ";
     $newStr1 = ltrim($str1);
     echo "结果:".$newStr1."长度:".strlen($newStr1);//结果:abc  长度:5

        
/* 2、rtrim();         //去掉字符串右边的空格
     示例:*/
     $newStr2 = rtrim($str1);
     echo "结果:".$newStr2."长度:".strlen($newStr2);//结果:  abc长度:5

        
/* 3、trim();         //去掉字符串两边的空格
     示例:*/
     $newStr3 = trim($str1);
     echo "结果:".$newStr3."长度:".strlen($newStr3);//结果:abc长度:3
        
/* 4、strlen();        //获取字符串长度
      示例:*/
      echo strlen($str1); //7
        
/* 5、strrev();        //反转字符串顺序
      示例:*/
      $str2 = "how are You";
      echo strrev($str2);//uoy era woh
        
/* 6、strtolower();    //所有字符转小写
      示例:*/
      echo strtolower($str2);//how are you
        
/* 7、strtoupper();    //所有字符转大写
       示例:*/
    echo strtoupper($str2);//HOW ARE YOU
        
/* 8、ucfirst();        //将字符串中第一个字符改为大写
       示例:*/
    echo ucfirst($str2);//How are You
        
/* 9、ucwords();        //将字符串中每个单词第一个字母改为大写
       示例:*/
    echo ucwords($str2);//How Are You



/* 10、explode(参数1,参数2,[参数3]) 分割字符串返回一个数组类型  【等同于C# split()方法】
       参数1:分割符
      参数2:要分割的字符串
      参数3:可选参数。分割为几份
    示例:*/
    $strArr1 = explode(" ", $str2);
    $strArr2 = explode(" ", $str2,2);
    var_dump($strArr1);
    var_dump($strArr2);
    //array(3) {
    //   [0]=>
    //   string(3) "how"
    //   [1]=>
    //   string(3) "are"
    //   [2]=>
    //   string(3) "You"
    // }
    // array(2) {
    //   [0]=>
    //   string(3) "how"
    //   [1]=>
    //   string(7) "are You"
    // }


/* 11、implode(参数1,参数2) 拼接字符串  【等同于javascript数组对象的join()方法】
       参数1:拼接符
      参数2:要处理的字符串数组
     示例:*/
     $arr = array(2,8,5,6,1,7);
     echo implode(",", $arr);//2,8,5,6,1,7


/* 12、substr(参数1,参数2,[参数3])   截取字符串
        参数1:要操作的字符串,
        参数2:开始位置,
        参数3:可选参数,要截取的长度。
    示例:
*/
    $str3 = "192.168.1.88";
    echo substr($str3, 4);//168.1.88
    echo substr($str3, 4,3);//168

/* 13、strstr(参数1,参数2)      从指定的字符串开始,截取字符串
    // 此方法还可以写作strchr()
    参数1:要操作的字符串
    参数2:开始位置的字符串
    示例:*/
    echo strstr($str3, "6");//68.1.88


/* 14、strpos(参数1,参数2,[参数3])  查找指定字符串出现的位置  【等价于C#中的IndexOf()方法】
    参数1:操作的字符串
    参数2:要查找的字符串
    参数3:可选参数,开始位置。
     示例:*/
     $str4 = "Great hopes make great man";
     echo strpos($str4, "o");//7
     echo strpos($str4, "e",4);//9


/* 15、 strrpos(参数1,参数2) 查找指定字符串最后一次出现的位置  【等价于C#中的LastIndexOf()方法】
      参数1:要操作的字符串
     参数2:要查找的字符串
      示例:*/
      echo strrpos($str4, "a");//24
      // 在路径中查找文件名D:\PHPEnv\ReadMe.txt
      $path = "D:\PHPEnv\ReadMe.txt";
      echo "文件名为:".substr($path, strrpos($path,"\\")+1);//文件名为:ReadMe.txt

/* 16、str_pad(参数1,参数2,[参数3],[参数4])       填补字符串
     参数1:要操作的字符串
    参数2:新字符串长度
    参数3:可选参数,要填补的字符串
    参数4:可选参数,填补类型   STR_PAD_BOTH、STR_PAD_RIGHT、STR_PAD_LEFT
     示例:*/
     echo str_pad($str4, 50,"=",STR_PAD_BOTH);//============Great hopes make great man============
        
/* 17、str_replace(参数1,参数2,str,count) 字符串替换 str_replace(search, replace, subject)
     参数1:要替换的字符/数组
    参数2:新的字符/数组
    参数3:操作的字符串
    count: 替换的个数
     示例:*/
    echo "\n";
    echo str_replace("t", "M", $str4);//GreaM hopes make greaM man
    $str="选1、选2、选3、选4";
    $arr=array("1","2","3","4");
    $arr1=array("a","b","c","d");
    $str=str_replace($arr,$arr1,$str,$count);
    echo "\n";
    echo $str."==替换的个数:".$count;


/* 18、strcmp(字符串1,字符串2) /strcasecmp(字符串1,字符串2)【二进制比较】
    =0 - 如果两个字符串相等 
    <0 - 如果 string1 小于 string2 
    >0 - 如果 string1 大于 string2 
     示例:*/
     echo "\n";
     echo strcmp("Hello", "hello");        //-1  区分大小写比较(内部进行二进制级别比较)
     echo strcasecmp("Hello", "hello");    //0  忽略大小写比较(内部进行二进制级别比较)

/* 19、strnatcmp(字符串1,字符串2) 使用一种“自然”算法来比较两个字符串。【自然排序法比较】
    strnatcasecmp(字符串1,字符串2);
    在自然算法中,数字 "2" 小于数字 "10"。在计算机排序中,"2" 大于 "10",这是因为 "2" 大于 "10" 的第一个数字。
    示例:*/
    echo "\n";
    echo strnatcmp("5", "20");        //-1  区分大小写比较 
    echo strnatcasecmp("H", "h");    //0      忽略大小写比较

/* 20、soundex(str)计算字符串的 soundex 键返回键值,表示一个英文单词的发音  【模糊比较】
     similar_text(str1,str2,percent)  返回匹配数量
     计算两个字符串的匹配字符的数目,参数3:存储百分比相似度的变量
     示例:*/
     echo "\n";
     echo soundex("hello");    //H400
     echo "\n";
     echo similar_text("first", "fire",$pct);//3
     echo("\n".$pct);        //66.666666666667


/* 21、strtr(str,oldChr,newChr)  【转换特定的字符】
     示例:*/
     echo "\n";
     echo strtr("hello word yes", "lo", "TW");//heTTW wWrd yes

/* 22、stripslashes(str) 删除字符串中的反斜杠(用于清理从数据库或 HTML 表单中取回的数据。)
     示例:*/
     echo "\n";
     echo stripcslashes("D:\PHPEnv\ReadMe.txt");//D:PHPEnvReadMe.txt

/* 23、htmlentities(string,[quotestyle],[character-set]) 把字符转换为 HTML 实体
    [quotestyle]:编码单引或双引号
                ENT_COMPAT - 默认。仅编码双引号。 
                ENT_QUOTES - 编码双引号和单引号。 
                ENT_NOQUOTES - 不编码任何引号。
    [character-set]:指定转换的编码
     示例:*/
     echo "\n";
     echo stripcslashes("<div>hello</div><b>word</b>");//按HTML格式输出,标签会被解释执行

/* 24、strip_tags(str,[allow]) 默认剥去 HTML、XML 以及 PHP 的标签。
    [allow]:指定要保留的标签
     示例:*/
     echo "\n";
     echo strip_tags("<div>hello</div><b>word</b>","<b>");//过滤掉div保留b标签



/* 25、parse_str()  解析URL中传递的参数*/
    parse_str("id=23&name=John%20Adams",$myArray);
    print_r($myArray);
    // Array
    // (
    //     [id] => 23
    //     [name] => John Adams
    // )


/* 26、    http_build_query();  构造URL传递参数*/
    $data = array('foo'=>'bar',
                  'baz'=>'boom',
                  'cow'=>'milk',
                  'php'=>'hypertext processor');
                  
    echo http_build_query($data);
    /* 输出:
          foo=bar&baz=boom&cow=milk&php=hypertext+processor
    */

    //将对象构造为参数
    class myClass {
      var $foo;
      var $baz;
      
      function myClass() {
        $this->foo = 'bar';
        $this->baz = 'boom';
      }
    }

    $data = new myClass();

    echo http_build_query($data);
    /* 输出:
          foo=bar&baz=boom
    */

// URL编码处理函数
//     urlencode();
//     urldecode();

//其它:
echo "\n";
printf("%0.2f","222.25466"); //222.25  以小数输出,精确到2位小数

echo "\n";
echo ord("A");//只转码第一个字符为ASCII码

echo "\n";
printf("%c", 0x41);  //A 将16进进制的数字转换为ASCII码表示的字符

echo "\n";               
printf("%c", 0101);  //A 第二个参数一定不能用单/双引号  

echo "\n";             
printf("%c", 65);    //A 第二个参数一定不能用单/双引号  

echo "\n";                
printf("%c", '01000001');  //A

echo "\n";                
echo chr(100); //d
posted @ 2013-12-27 15:29  TOGGLE  阅读(337)  评论(0编辑  收藏  举报