1.单双引号的区别,定界符,双引号可以识别数组[]标记

//推荐{}
$arr=array('one'->100);
echo "aaa$arr['one']aaa";//报错,不能识别'
echo "aaa$arr[one]aaa";//aaa100aaa
echo "aaa{$arr[one]}aaa";//aaa100aaa,但会和同名常量冲突
echo "aaa{$arr['one']}aaa";//aaa100aaa
echo "aaa{$arr["one"]}aaa";//aaa100aaa
class Square {
    public function width(){}
};
$square = new Square();
echo "aaa $square->width aaa"//OK
echo "aaa $square->width00 aaa"//没有特殊符号间隔,不能解析
echo "aaa {$square->width}00 aaa"//OK

2.字符串处理函数,隐式转换为字符串再处理,如数组长度count()/字符串长度strlen(),注:count('')为1(和JS区别)

3.建议这样访问元素(区别于数组):$str{1},注:每个字符有相应的内存空间,只能装下一个

<?php    
    $str='hello';
    $str[2]='world';
    echo $str;//hewlo
?>

4.字符串输出函数

a.substr($str,1,1);
b.mb_substr($str,1,1,'utf-8');//专门处理中文字符
c.echo/print:print有返回值;echo指令方式可以打印多个参数,逗号隔开
d.die/exit:输出一个字符串并退出程序
e.printf():格式化输出,参数如图:

图片描述

<?php    
    $int=100.678;
    printf("%1.2f,%d,%c"$int,$int,$int);//100.68,100,d
?>
f.chr/ord:查找ASC的相应字符/查找ASC
g.sprintf():格式化返回,如下:
<?php    
    $int=100.678;
    $str=sprintf("%1.2f,%d,%c"$int,$int,$int);//100.68,100,d
?>
    echo $str;//100.68,100,d

5.字符串转换函数

<?php    
    $str="gggddd8hhhhello worldhhh8gggddd";
    $nstr=trim($str,"0..9gd");//0到9和包含gd的全删
    echo $nstr;//hhhhello worldhhh
?>
c.str_pad():按需求填充字符串
<?php    
    $str="hello world";
    $nstr=str_pad($str,19,"#",STR_PAD_BOTH);
    echo $nstr;//####hello world####
?>
d.改变大小写函数:strtolower/strtoupper/ucfirst/ucwords

6.HTML字符串格式化函数

a.htmlspecialchars():HTML标记转换函数
<?php    
    if(isset($_POST['dosubmit'])){
        //输入任何内容直接输出
        echo htmlspecialchars($_POST['shuru']);
    }
?>
<!DOCTYPE html>
<html>
    <head>        
    </head>
    <body>
        <form action="" method="post">
            <label for="shuru">title:</label><input type="text" id="shuru" name="shuru"/>
            <button type="submit" name="dosubmit">提交</button>
        </form>
    </body>
</html>
b.HTML特殊符号添加转义字符函数:addslashes();
c.HTML特殊符号去掉转义字符函数:stripslashes();
d.删除HTML标签:strip_tags($str,'<b><u>'); //只保留bu   
e.\n转br:nl2br();


7.字符串格式化函数

md5(md5($str).'niwota');//多层md5进行加密

8.字符串比较函数

a.==比较
b.二进制安全比较,即逐个字母的ASCII比较,区分大小写:strcmp($str1,$str2);//返回1/-1/0
c.同上,不区分大小写:strcasecmp();
d.按自然顺序比较:strnatcmp();/strnatcasecmp();
e.自定义排序:usort($arr,'strnatcasecmp');

9.字符串查询函数

strstr('name@example.com','@');//@example.com:
strstr('name@example.com','@',true);//name:

c.stristr():不区分大小写,同上

1111
93 声望10 粉丝