PHP之路 PHP基础【第五篇】字符串

字串的定义

1. 单引号: ''  不支持变量的解析,转义符: \\ \'
2. 双引号: ""  支持变量的解析,转义符: \n \r \t \" \$ \\ ...
3. 定界符: <<< 注意结束符的使用。 

字串输出函数

1. echo() 支持多个变量同时输出 如: echo $s1,$s2;
2. print()  不支持多个变量。
3. die() 别名exit() 终止当期脚本执行,可以顺便输出内容
4. print_r() 与var_dump()函数类似,都是格式化变量并直接输出,可以解析数组,对象等类型
	常用于开发时的临时输出使用(测试)
5. printf() 格式化字串并输出
6. sprintf() 格式化字串并返回

chr()和ord()是实现ASCII码值和字符之间的转换

  

<?php
header("Content-Type: text/html;charset=utf-8");
//字串输出函数
//1. echo 和print的输出:
// echo来自于脚本的输出,而print是来自于C语言的输出
// 其中echo支持多个值输出,而print不可以

echo "aaa";
print "bbb";
echo("ccc");
print("dddd");

$a=10;
$b=20;
$c=30;
echo $a,$b,$c; //同时输出多个变量
//print $a,$b,$c; //print不可以一次输出多个变量
print $a.$b.$c; //现将变量连接成一个值,再由print输出。

echo "<hr/>";

//2. var_dump()和print_r()的格式化输出
//var_dump和print_r除了可以输出标量类型,也可以输出复合类型和特殊类型
var_dump(10); //int(10) 带类型输出
print_r(10);  //10  等价于echo或print

var_dump("zhangsan"); //string(8) "zhangsan" 带类型输出
print_r("zhangsan");  //zhangsan  等价于echo和print

echo "<br/>";

$a=array(10,20.8,"abc");

echo $a;  //Array
print $a; //Array
print_r($a); //Array ( [0] => 10 [1] => 20.8 [2] => abc )
var_dump($a); //array(3) { [0]=> int(10) [1]=> float(20.8) [2]=> string(3) "abc" } 

echo "<br/>";

$a=NULL;

echo $a;  //没有输出
print_r($a); //没有输出
var_dump($a); //NULL 
View Code

常用处理函数

    ltrim() 去除左侧多余字符(默认删空格)
    rtrim() 去除右侧多余字符(默认删空格)
*    trim()  去除两侧多余字符(默认删空格)
    str_pad() 使用另一个字符串填充字符串为指定长度
*    函数: strtolower( ) 
        语法: string strtolower(string str);
        本函数将字符串 str 全部变小写字符串。 
*    函数: strtoupper( ) 
        语法: string strtoupper(string str); 
        本函数将字符串 str 全部变大写字符串。     
    函数:ucfirst( ) 
        将字符串第一个字符改大写。 
        语法: string ucfirst(string str); 
        本函数返回字符串 str 第一个字的字首字母改成大写。
    函数:ucwords( ) 
        将字符串每个字第一个字母改大写。 
        语法: string ucwords(string str); 
        本函数返回字符串 str 每个字的字首字母全都改成大写。

    int ord(string $string ) — 返回字符的 ASCII 码值
    string chr(int $ascii ) — 返回指定的字符
        
    网页输出格式化函数
    nl2br--将字串中\n换成<br/>标签,实现换行输出。
*    htmlspecialchars--格式换字串中的html标签
    htmlentities--
*    strip_tags -- 删除html标签函数
    
    strrev -- 将字串颠倒返回
*    strlen -- 求字串长度: 字母:一个算一个长度,汉字:utf-8编码是每个汉字3个长度,其他是2长度
*    mb_strlen(str,"utf-8");获取中文字的长度
    number_format -- 格式化数字的
*    md5 --  单向加密的(不可逆的(不能解密的))。

    strcmp -- 整个比较是否相同
    strncmp --指定长度的比较
    strcasecmp-- 不区分大小写比较

    strnatcmp -- 按自然顺序比较
    similar_text -- 模糊比较

*    explode -- 字符串拆分函数
*    implode -- 字符串组合函数

*    substr --  截取字串 a.txt  a.rm a.rmvb  a.b.txt 
    string返回值 substr(
        string string被截字串,
        int start起始位置 
        [, int length长度] )
        
*    mb_substr() --截取指定编码的字串
    
*    strstr -- 字串查找并截取
    strchr  -- 是上面的strstr的别名找并截取
    strrchr -- 从后面做字串查找。找并截取


*    strpos --寻早一个字符出现位置(从前开始。第三个参数为查找起始位置)
    strrpos --寻早一个字符出现位置(从后面开始找。)

    
*    换成字串 str_replace(被换字串,换成的字串,原字串,[数量]);字符串替换
    

    file_get_contents("文件名") // 获取指定文件的内容
    file_put_contents("文件名","内容")//将内容写入(覆盖写)到指定文件中
    
    file_put_contents("文件名","内容",FILE_APPEND)
    //将内容写入(追加写)到指定文件中  
常用字串函数简介
<?php
//字串格式化函数
/*
    ltrim() 去除左侧多余字符(默认删空格)
    rtrim() 去除右侧多余字符(默认删空格)
*    trim()  去除两侧多余字符(默认删空格)
*/

$s = " abc ";
echo "#".$s."#<br/>";
echo "#".ltrim($s)."#<br/>"; //去除左侧空格
echo "#".rtrim($s)."#<br/>"; //去除右侧空格
echo "#".trim($s)."#<br/>";  //去除两侧空格


//循环1到5的值,并使用逗号隔开
$str="";
for($i=1;$i<=5;$i++){
    $str.=$i.",";
}
echo rtrim($str,","); //去除字串str后面多余的逗号
字串格式化
<?php
header("Content-Type: text/html;charset=utf-8");
//字串中大小写的转换
/*
*   函数: strtolower( ) 
        语法: string strtolower(string str);
        本函数将字符串 str 全部变小写字符串。 
*    函数: strtoupper( ) 
        语法: string strtoupper(string str); 
        本函数将字符串 str 全部变大写字符串。     
    函数:ucfirst( ) 
        将字符串第一个字符改大写。 
        语法: string ucfirst(string str); 
        本函数返回字符串 str 第一个字的字首字母改成大写。
    函数:ucwords( ) 
        将字符串每个字第一个字母改大写。 
        语法: string ucwords(string str); 
        本函数返回字符串 str 每个字的字首字母全都改成大写。
*/
$s = "Hello World!";
echo "原字串:".$s."<br/>";
echo "转小写:".strtolower($s)."<br/>";
echo "转大写:".strtoupper($s)."<br/>";


$foo = 'hello world!';
echo ucwords($foo);  // Hello World!  
echo ucfirst($foo);  // Hello world!


echo "<h3>字串填充</h3>";

for($i=1;$i<200;$i++){
    echo "2015".str_pad($i,4,"0",STR_PAD_LEFT)."<br/>";
}
字串中大小写的转换
<?php
//    网页输出格式化函数
/*
    nl2br--将字串中\n换成<br/>标签,实现换行输出。
*    htmlspecialchars--格式换字串中的html标签
    htmlentities--
*    strip_tags -- 删除html标签函数
*/

$str="aaaaaa\nbbbbbbbbbb\nccccccccc\nddddddddd";
echo nl2br($str);   //将参数中的换行符替换成br标签

echo "<hr/>";

$s = "<ul>
            <li>aaaaa</li>
            <li>bbbbb</li>
            <li>ccccc</li>
            <li>ddddd</li>
     </ul></div>";
 
echo "<pre>"; 
echo htmlspecialchars($s); //将html中的< >转成对应的实体< > 


echo "<hr/>";
echo strip_tags($s); //清除字串中的HTML标签
网页输出格式化
<?php
//字串的其他格式化函数
/*
    strrev -- 将字串颠倒返回
*    strlen -- 求字串长度: 字母:一个算一个长度,汉字:utf-8编码是每个汉字3个长度,其他是2长度
*    mb_strlen(str,"utf-8");获取中文字的长度
    number_format -- 格式化数字的
*    md5 --  单向加密的(不可逆的(不能解密的))。
*/

//echo strlen("你好"); //在UTF-8编码占3个长度/每个字,其他占2个长度。

echo mb_strlen("你好","utf-8"); //2 指定编码求长度,无论字母还是汉字一个算一个。

//echo md5(md5("123")."asdfasdf"); //202cb962ac59075b964b07152d234b70


/*
$s = "zhangsan";
echo strrev($s);
echo "求字串长度:".strlen($s); //8
echo "<br/>";
//数字格式化
$s = 123456784.657;
echo number_format($s,2); //123,456,784.66

echo "<hr/>";

//php中的字串可以把它看成一个字符数组。
$s = "zhangsan";
echo $s[0]; //z
echo $s[1]; //h
echo $s[2]; //a
echo "<br/>";
//将字串s倒着输出
for($i=strlen($s)-1;$i>=0;$i--){
    echo $s[$i];
}

echo "<hr/>";
*/
字串的其他格式化
<?php
header("Content-Type: text/html;charset=utf-8");
//字串比较:
/*
    strcmp -- 整个比较是否相同
    strncmp --指定长度的比较
    strcasecmp-- 不区分大小写比较

    strnatcmp -- 按自然顺序比较
    similar_text -- 模糊比较
*/

//整个字串比较
echo strcmp("abc","abd"); //-1表示后面的大, 1表示前面的大 0表示相等

echo strncmp("abc","abd",2); //0相等: 比较字串的前2个字符是否相等


echo "<br/>";

echo "id8和id18做字串比较:".strcmp("id8","id18")."<br/>";  //1 前面大
echo "id8和id18做自然比较:".strnatcmp("id8","id18")."<br/>";//-1 后面大

echo "<hr/>";

$s1 = "ae sdfl jqw lek rjqlkw ejr qlkwejrql kwerq wer asdf";
$s2 = "ae sdfl jqw lek rjqllw ejr qlkwejrql kwerq  
wer sdf";

echo "相似度:".((similar_text($s1,$s2)/strlen($s1))*100)."%";
字串比较
<?php
header("Content-Type: text/html;charset=utf-8");
//字串的拆分和拼装:
//*    explode -- 字符串拆分函数
//*    implode -- 字符串组合函数

$str = "10,;,20,;,30,;,40";
echo "原字串:".$str."<br/>";
echo "拆分后:";

$a = explode(",;,",$str); //将字串str以逗号作为分隔符拆分出数组
print_r($a);

echo "<br/>";

$s = implode(":",$a); //将数组a以分隔符:拼装称字串
echo "拼装后的字串:".$s."<br/>";
字串的拆分和拼装
<?php
header("Content-type:text/html;charset=utf-8");

//字串截取:
$str="mingrenboke";

//请使用字串截取函数substr()将上面字串中的ang截取出来;

echo substr($str,2,3)."<br/>"; //从索引位置2开始截取3个长度
echo substr($str,2,-7)."<br/>";//从索引位置2开始截取到最后,排除后7个
echo substr($str,-10,3)."<br/>";//从倒数第10个位置开始,截取3个
echo substr($str,-10,-7)."<br/>";//从倒数第10个位置开始,截取到最后,排除后7个

//截取中文
echo mb_substr("中文字串截取处理",2,4,"utf-8");

//字串查找并截取:
//*    strstr -- 字串查找并截取
//    strchr  -- 是上面的strstr的别名找并截取
//    strrchr -- 从后面做字串查找。找并截取

$s = "zhangsan";
echo strstr($s,"a")."<br/>"; //angsan 从字串s中查找第一个a字母出现的位置并截取到最后。
echo strchr($s,"a")."<br/>"; //angsan 从字串s中查找第一个a字母出现的位置并截取到最后。

echo strrchr($s,"a"); //an  从字串s中后面开始向前查找第一出现的a字母,并截取到最后。

echo "<hr/>";
字串截取
<?php
//字串替换函数
//str_replace--字串替换
//mixed str_replace(mixed $search,mixed $replace,mixed $subject[,int &$count])

$s = "10,20,30,40,50";
//一对一替换:将上面字串中的逗号,替换成冒号:
echo str_replace(",",":",$s)."<br/>";

$s = "10,20;30,40;50";
//多对一替换:将上面字串s中的逗号和分号都替换成冒号
echo str_replace(array(",",";"),":",$s)."<br/>"; 

$s = "10,20;30,40;50";
//多对多对应替换:将上面字串s中的逗号换成冒号,分号换成感叹号
echo str_replace(array(",",";"),array(":","!"),$s);
字串替换
<?php
header("Content-type:text/html;charset=utf-8");

$s = "zhangsan";
echo "第一次出现a字母的位置:".strpos($s,"a")."<br/>";
echo "倒数第一次出现a字母的位置:".strrpos($s,"a")."<br/>";
字串查找

 

  

  

 

 

  

 

posted @ 2019-10-05 14:40  沐风先生  阅读(139)  评论(0编辑  收藏  举报