博客列表 >PHP字符串创建方式及其常用函数

PHP字符串创建方式及其常用函数

longlong
longlong原创
2020年07月12日 22:37:19852浏览

1. 字符串创建方式

1.1 使用单引号创建

示例如下:

  1. <?php
  2. $str = 'friends';
  3. // 1.单引号中的变量不能解析
  4. echo 'we are $str','<br>';
  5. // 2.可使用字符串拼接的方式
  6. echo 'we are '.$str,'<br>';
  7. // 3.特殊字符也不能解析
  8. echo 'we are \n\t'.$str,'<br>';
  9. // 4.单引号中又出现单引号,需要转义
  10. echo 'we are \'good\' '.$str,'<br>';
  11. // 5.在单引号中直接使用双引号
  12. echo 'we are "good" '.$str,'<hr>';

1.2 使用双引号创建

示例如下:

  1. <?php
  2. $str = 'Hello';
  3. // 1.双引号中的变量可以解析
  4. echo "$str World",'<br>';
  5. // 2.变量标示符(花括号)
  6. echo "$strbig World",'<br>';
  7. echo "{$str}big World",'<br>';
  8. // 3.双引号可以解析特殊字符
  9. echo "{$str}\nWorld\n\n123\\";// 在源代码中可查看到效果

1.3 heredoc的方式

示例如下:

  1. <?php
  2. // 相当于双引号的加强版
  3. $str = 'eat meat';
  4. // 1.设置字符串中文本样式
  5. echo "<span style=\"color:red\">$str</span>",'<br>';//必须使用转义符
  6. // 2. 通过heredoc的方式,其中AAA可以省略双引号,很适合混编使用
  7. echo <<<AAA
  8. <span style="color:red;">$str</span>
  9. AAA,'<hr>';

1.4 nowdoc的方式

示例如下:

  1. <?php
  2. // 相当于单引号的加强版,其中BBB必须加上单引号,适合用在大量字符串输出时
  3. echo 'look at the computer','<br>';
  4. echo <<<'BBB'
  5. look at the computer
  6. BBB;

注:字符串大小上限:2G

2. 常用字符串函数

2.1 格式打印输出函数

示例如下:

  1. <?php
  2. // 1. printf():将输出的字符串按照指定的格式模板输出,语法:printf('模板',将模板中的占位符替换)
  3. printf('watch %s','TV');
  4. echo '<br>';
  5. printf('money %d',100);
  6. echo '<br>';
  7. // 示例:写一条查询语句
  8. // printf('SELECT * FROM 表名称 LIMIT 数量','...','...')
  9. printf('SELECT * FROM %s LIMIT %d','form',15);
  10. echo '<br>';
  11. // 2.vprintf(),功能与printf()一样,只是参数不一样
  12. vprintf('SELECT * FROM %s LIMIT %d',['form',15]);
  13. // 3.sprintf(),不会输出,只返回格式化字符串
  14. // 示例:将一条语句写入一个文件
  15. $par = sprintf('SELECT * FROM %s LIMIT %d','form',20);
  16. file_put_contents('temp.txt',$par);
  17. // 4.vsprintf(),也是功能与sprintf()一样,只是参数不一样
  18. $par1 = vsprintf('SELECT * FROM %s LIMIT %d',['form',30]);
  19. file_put_contents('temp1.txt',$par1);

2.2 分割查询与替换

  • implode():将数组拼接为字符串,示例如下:
  1. <?php
  2. $arr = ['first','second','third','fourth','fifth'];
  3. echo implode('-',$arr),'<br>';
  4. // 同名函数join,效果一样
  5. echo join('|',$arr),'<hr>';

  • explode():将字符串转为数组,示例如下:
  1. <?php
  2. $site = 'www.baidu.com';
  3. echo '<pre>'.print_r(explode('.',$site),true).'</pre>','<br>';
  4. // 数组元素为2
  5. echo '<pre>'.print_r(explode('.',$site,2),true).'</pre>','<br>';
  6. // 删除最后一个元素
  7. echo '<pre>'.print_r(explode('.',$site,-1),true).'</pre>','<br>';

  • list():将一个索引数组中的元素一次赋值给一些独立变量,示例如下:
  1. <?php
  2. list( $a, $b, $c) = ['dog','cat','fish'];
  3. echo "I have animals:$a and $b and $c",'<hr>';

  • substr():返回字符串的一部分,语法:substr(string,start,length),示例如下:
  1. <?php
  2. $str = 'hello world';
  3. echo substr($str,4),'<br>';
  4. echo substr($str,3,6),'<br>';
  5. echo substr($str,-2),'<hr>';

  • str_split():将字符串分割到数组中,可指定数组元素的宽度,语法:str_split(string,length),示例如下:
  1. <?php
  2. $str = '我想睡觉了啊';
  3. echo '<pre>'.print_r(str_split($str,3),true).'</pre>';
  4. echo '<pre>'.print_r(str_split($str,6),true).'</pre>';

  • str_getcsv():解析 CSV 格式字段的字符串,并返回一个包含所读取字段的数组,示例如下:
  1. <?php
  2. $str = file_get_contents('test.csv');
  3. $arr = explode(",",$str);
  4. var_dump($arr);

2.3 字符串填充、重复、替换、删除、查找、切割

  • str_pad():填充字符串,语法:str_pad(string,length,pad_string,pad_type),如果长度小于原始字符串长度,则不进行任何操作,示例如下:
  1. <?php
  2. $str = 'hello';
  3. echo str_pad($str,10,'.'),'<br>';
  4. echo str_pad($str,20,'.',STR_PAD_BOTH),'<hr>';

  • str_repeat:把字符串重复,示例如下:
  1. <?php
  2. echo str_repeat('A',10);

  • str_replace():字符串替换,语法:str_replace(find,replace,string,count),count可以计算被替换了几次,示例如下:
  1. <?php
  2. $str = 'abc,abc,abc,abc';
  3. echo str_replace('a','y',$str,$count),'<br>';
  4. echo "替换了{$count}次<hr>";
  5. // 示例:禁用违禁词
  6. $forbidden = ['性感','小蜜','约会'];
  7. echo str_replace($forbidden,'**','性感天使,小蜜甜甜,约会饮酒'),'<br>';
  8. // 通过数组可以个性化替换
  9. echo str_replace($forbidden,['***','+++','###'],'性感天使,小蜜甜甜,约会饮酒'),'<br>';

  • trim():移除字符串两侧的空白字符或其他预定义字符,示例如下;
  1. <?php
  2. $str = " \n\n\nhello world\n\n ";//查看源代码
  3. echo $str,'<br>';
  4. echo trim($str),'<br>';
  5. // 去除world中的ld
  6. echo trim('world','ld'),'<br>';
  7. // 去除字符串中的数字
  8. echo trim('123abcde456','1..9'),'<br>';

  • strpos():查找字符串在另一字符串中首次出现的位置,从0开始查找,示例如下:
  1. <?php
  2. $str = 'we are good friends';
  3. echo 'e第一次出现的位置:'.strpos($str,'e'),'<br>';
  4. // 从指定位置开始查找
  5. echo '从索引为2开始查找e:'.strpos($str,'e',2);

  • strstr():搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,示例如下:
  1. <?php
  2. $str = 'I have to go';
  3. echo strstr($str,'to'),'<br>';
  4. // 传入第二个参数true,表示返回字符串的前面部分
  5. echo strstr($str,'to',true),'<br>';
  6. echo '<hr>';
  7. // 示例:获取邮箱后半部分,并去掉@符号
  8. $email = 'username123@qq.com';
  9. echo ltrim(strstr($email,'@'),'@'),'<br>';
  10. // 拿到前半部分
  11. echo strstr($email,'@',true),'<br>';

总结

  1. 学习了创建字符串的四种方式:单引号、双引号、heredoc、nowdoc

  2. 学习了一些常用字符串函数,用于字符串填充、重复、替换、删除、查找、切割,其他还有很多老师没有讲到的函数,自己看手册。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议