PHP笔记5--字符串操作

字符串定义语法

1)单引号字符串:使用单引号包裹
2)双引号字符串:使用双引号包裹
3)nowdoc字符串:没有单引号的单引号字符串
$str = <<<’边界符’
字符串内容
边界符;
4)heredoc字符串:没有双引号的双引号字符串
$str = <<<边界符
字符串内容
边界符;

引号方式:比较适合定义那些比较短(不超过一行)或者没有结构(缩进等)要求的字符串,如果有结构要求,或者内容超过一行,可以使用nowdoc和heredoc字符串定义

$a = '123';
$b = "123";
//heredoc
$c = <<<EOD
asdfasdfasdfadfasdfasf
asdf得到
EOD;
//nowdoc
$d = <<<'EOD'
asdfasdfasdfadfasdfasf
asdf得到222
EOD;
echo $c.'<br/>'.$d

结构化定义字符串变量的规则
1、 结构化定义字符串对应的边界符有条件:
1)上边界符后面不能跟任何内容(包括空格);
2)下边界符必须顶格:最左边;
3)边界同样后面只能跟分号,不能跟任何内容;
2、 结构化定义字符串的内部(边界符之间)的所有内容都是字符串本身

字符串转义

转义的含义:在计算机通用协议中,有一些特定的方式定义的字母,系统会特定处理:通常这种方式都是使用反斜杠+字母(单词)的特性:

\r\n:回车换行
PHP在识别转义字符的时候也是使用同样的模式:反斜杠+字母
在PHP中系统常用的转义符号:
\’:在单引号字符串中显示单引号
\”:在双引号字符串中显示双引号
\r:代表回车(理论上是回到当前行的首位置)
\n:代表新一行
\t:类似tab键,输出4个空格
\$:在PHP中使用$符号作为变量符号,因此需要特定识别

单引号和双引号的区别:

1、其中单引号中能够识别\’,而双引号中就不能识别\’(下图浏览器查看的是页面源代码)
2、双引号中因为能够识别$符号,所以双引号中可以解析变量,而单引号不可以
双引号中变量识别的规则:
1)变量本身系统能够与后面的内容区分:应该保证变量的独立性,不要让系统难以区分
2)使用变量专业标识符(区分),给变量加上一组大括号{}

$a = '变量a';
echo $a.'<br/>'; //变量a
$b = 'bbb $a'; 
echo $b.'<br/>';//bbb $a
$c = "a123123$a";
echo $c.'<br/>';//a123123变量a
$d = "dddd$a ddd";
echo $d.'<br/>';//dddd变量a ddd
$e = "dddd $a ddd";
echo $e.'<br/>';//dddd 变量a ddd
$f = "dddd{$a}ddd";
echo $f.'<br/>';// dddd变量addd

字符串长度问题

1)基本函数strlen():得到字符串的长度(字节为单位)
2)多字节字符串的长度问题:包含中文的长度。
让一个中文的长度为1而不是3
3)多字节字符串扩展模块:mbstring扩展(mb:Multi Bytes)
首先需要加载PHP的mbstring扩展 可以使用mb扩展带来很多函数
mbstring扩展针对的是一些关于字符统计:
strlen只是针对标准交换码ASCII
mbstring会针对不同的字符集 (php7默认字符集为utf-8)

$a = '张三';
$b = '123';
echo strlen($a),'<br/>',strlen($b); // 4 3
echo '<hr/>';
echo mb_strlen($a),'<br/>',mb_strlen($b),'<br/>',mb_strlen($a,'utf-8'); // 4 3 2

字符串相关函数:

1)转换函数:implode(), explode(), str_split()
implode(连接方式,数组):将数组中的元素按照某个规则连接成一个字符串
explode(分割字符,目标字符串):将字符串按照某个格式进行分割,变成数组
中国|北京|顺义 == array(‘中国’,‘北京’,’顺义’);
str_split(字符串,字符长度):按照指定长度拆分字符串得到数组
2)截取函数:trim(), ltrim(), rtrim()
trim(字符串[,指定字符]):本身默认是用来去除字符串两边的空格(中间不行),但是也可以指定要去除的内容,是按照指定的内容循环去除两边有的内容:直到碰到一个不是目标字符为止
ltrim():去除左边的
rtrim():去除右边的
3)截取函数:substr(), strstr()
substr(字符串,起始位置从0开始[,长度]):指定位置开始截取字符串,可以截取指定长度(不指定到最后)
strstr(字符串,匹配字符):从指定位置开始,截取到最后(可以用来取文件后缀名)

4)大小转换函数:strtolower(), strtoupper(), ucfirst()
strtolower:全部小写
strtoupper:全部大写
ucfirst:首字母大写

5)查找函数:strpos(), strrpos()
strpos(字符串,匹配字符):判断字符在目标字符串中出现的位置(首次)
strrpos(字符串,匹配字符):判断字符在目标字符串中最后出现的位置

6)替换函数:str_replace()
str_replace(匹配目标,替换的内容,字符串本身):将目标字符串中部分字符串进行替换

7)格式化函数:printf(), sprintf()
srintf/sprintf(输出字符串有占位符,顺序占位内容…):格式化输出数据

8)其他:str_repeat(), str_shuffle()
str_repeat():重复某个字符串N次
str_shuffle():随机打乱字符串

$a = ' abc cde sdd ';
echo explode($a,' ');
echo '<br/>';
echo str_split($a,3);
echo '<br/>';
var_dump(trim($a));//string(11) "abc cde sdd"
echo '<br/>';
echo substr($a,3,3);//c c
echo '<br/>';
echo strtoupper($a);//ABC CDE SDD
echo '<br/>';
echo strpos($a,'d');//6
echo '<br/>';
echo  str_replace('a','1',$a);//1bc cde sdd
echo '<br/>';
echo str_repeat('1',5);//11111
echo '<br/>';
echo str_shuffle($a);//s d e cba ddc

猜你喜欢

转载自blog.csdn.net/zhangxm_qz/article/details/108525419