博客列表 >字符串的四种定义及部分函数

字符串的四种定义及部分函数

简行
简行原创
2020年07月10日 17:48:541563浏览

一.字符串的四种定义方式

字符串大小的上限: 2G

1.单引号定义

  1. <?php
  2. //单引号创建
  3. $str = 'Friday';
  4. // 1.单引号中的变量不能被解析
  5. echo 'Today is $str '; //错误输出Today is $str
  6. // 2.单引号中的特殊字符不能被解析出来
  7. echo 'welcome to \n \r my shop'; //错误输出 welcome to \n \r my shop
  8. // 在单引号创建字符串中出现单引号
  9. echo 'welcome to \'my\' shop'; //输出 welcome to 'my' shop
  10. // 在单引号创建字符串中出现转义符: \,连续写二个
  11. echo 'welcome to \\my\\ shop'; //输出 welcome to \my\ shop

2.双引号定义

  1. <?php
  2. //双引号创建
  3. $name = "Admin";
  4. // 双引号中的变量可以被解析出来
  5. echo "My name is {$name}"; //输出 My name is Admin
  6. // 双引号中的特殊字符能被解析出来
  7. echo " hello \n\r {$name}\\";
  8. echo '<hr>';

3.heredoc定义: 相当于双引号创建字符串的加强版

  1. <?php
  2. echo <<< ABC
  3. My name is <span style="color:red;">Admin</span>
  4. ABC;
  5. //输出 My name is Admin;其中Admin字体颜色是红色,可以用于添加HTML样式

4.nowdoc定义: 相当于单引号创建字符串的加强版

  1. <?php
  2. echo <<< 'NOW'
  3. hello you
  4. NOW;

二.字符串函数

1.打印输出函数

  • printf()vprintf()
  1. // printf("模板","替换占位符")
  2. // %d,%s:替换占位符
  3. printf("select * from %s limit %d","user",5); //输出 select * from user limit 5
  4. //多个占位符替换
  5. vprintf("select * from %s limit %d",["user",5]);//输出 select * from user limit 5
  • sprintf()vsprintf()
  1. //sprintf(): 返回格式化字符串,而不是输出
  2. sprintf("select * from %s limit %d","user",5);
  3. vsprintf("select * from %s limit %d",["user",5]);
  4. // sprintf()与vsprintf():功能一致,传参不同

2.字符串与数组直接的转换操作:implode,explode,str_split,list

  1. // implode(): 数组转换成字符串
  2. echo implode(";",['阿','的','发','阿']); //输出 阿;的;发;阿
  3. // explode():字符串转换数组
  4. print_r(explode(">","1>2>3>4")); //打印 Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
  5. print_r(explode(', ', '周一, 周二, 周三, 周四, 周五', 4));
  6. //explode第三个参数是切割成几个元素组成的数组
  7. //打印 Array ( [0] => 周一 [1] => 周二 [2] => 周三 [3] => 周四, 周五 )
  8. // str_split(): 把字符串转为数组,可指定数组元素的宽度
  9. print_r(str_split('百度.cn', 3));
  10. // 3表示一个数组下班3个字符,另一个中文占3个支付 打印 Array ( [0] => 百 [1] => 度 [2] => .cn )
  11. // list():将一个索引数组中的元素,按顺序解析到独立变量中,不是函数
  12. list($Monday, $Tuesday, $Wednesday) = explode(', ', '周一, 周二, 周三, 周四, 周五', 4);
  13. echo $Monday, $Tuesday, $Wednesday; //输出 周一周二周三

3.字符串截取:substr

  1. //字符串的截取
  2. // substr($string, $start, $length)
  3. echo substr('123456', 0), '<br>'; //输出 123456
  4. echo substr('123456', 2), '<br>'; //输出 3456
  5. echo substr('123456', 2, 2), '<br>'; //输出 34
  6. echo substr('123456', -1), '<br>'; //输出 6
  7. echo substr('123456', -3,2), '<br>'; //输出 456

4.字符串填充str_pad():将字符串填充到指定长度

  1. // str_pad(string,length,pad_string,pad_type)
  2. // tring :必需。规定要填充的字符串。
  3. // length :必需。规定新的字符串长度。如果该值小于字符串的原始长度,则不进行任何操作。
  4. // pad_string :可选。规定供填充使用的字符串。默认是空白。
  5. // pad_type: 可选。规定填充字符串的哪边。
  6. // pad_type可能的值:
  7. // STR_PAD_BOTH - 填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。
  8. // STR_PAD_LEFT - 填充字符串的左侧。
  9. // STR_PAD_RIGHT - 填充字符串的右侧。默认。
  10. echo str_pad('day', 8, '*', STR_PAD_BOTH);// 输出 **day***

5.字符串替换

  1. echo str_replace('|',"\\",'http:||myphp.edu|index0709.php');
  2. echo '<hr>';
  3. //获取替换次数
  4. echo str_replace('day', 'T','$Monday, $Tuesday, $Wednesday', $count);
  5. echo 'day被替换了' .$count . ' 次';
  6. echo '<hr>';
  7. $arr = ['佣金', '性别', '账号', '银行'];
  8. echo str_replace($arr, '...', '高额佣金, 不行性别, 无需账号,银行随意');
  9. echo '<hr>';
  10. //个性化
  11. echo str_replace($search, ['***','???', '$$$', '###'], '高额佣金, 不行性别, 无需账号,银行随意');

6.字符串剔除两边指定字符:trim

  1. // 从二边删除指定的字符
  2. $str = '1433898http:||myphp.edu|index0709.php site654143';
  3. echo $str, '<br>';
  4. echo trim($str, '143'), '<br>';
  5. echo trim($str, '1..8'), '<br>';
  6. echo trim($str, '1..4'), '<br>';

7.查询字符串在另一个字符串首次出现的位置:strpos

  1. //默认总0开始
  2. echo strpos('today is Wednesday', 'day'), '<br>'; //返回2
  3. //从指定位置开始查询
  4. echo strpos('today is Wednesday', 'day', 4), '<br>';//返回 15

8.获取字符在字符串中是否存在,如果是,返回该字符串及后面剩余部分:strstr

  1. echo strstr("363799110@qq.com","@"), '<br>';
  2. //加上第3个参数ture,则返回首次出现前面的字符串
  3. echo strstr("363799110@qq.com","@",true), '<br>';

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