侧边栏壁纸
博主头像
云BLOG 博主等级

行动起来,活在当下

  • 累计撰写 318 篇文章
  • 累计创建 6 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录
WEB

PHP填充字符串

Administrator
2024-04-09 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

str_pad()函数的作用是:用一个字符串填充另一个指定字符串到指定长度。
str_pad(string,length,pad_string,pad_type)
参数 描述
string 必需。规定要填充的字符串。
length 必需。规定新的字符串长度。如果该值小于字符串的原始长度,则不进行任何操作。
pad_string 可选。规定供填充使用的字符串。默认是空白。
pad_type
可选。规定填充字符串的哪边。
可能的值:
STR_PAD_BOTH - 填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。
STR_PAD_LEFT - 填充字符串的左侧。
STR_PAD_RIGHT - 填充字符串的右侧。默认。

<?php
$str = "Hello World";
echo str_pad($str,30,".",STR_PAD_LEFT);
?>

//结果:...................Hello World

public function test_iot(Request $request){
  //假设我们需要批量生成10条
    $num = 10;
    //这里是我们要拼接的固定前缀
    $device_name = 'ABCD_';
    //设置从0开始
    $m = 0;
    $strs = '';
    for($i = 0; $i<$num; $i++){
    //每次循环,m都会递增
      $m = $m+1;
      //我们通过str_pad()函数,把递增的$m组合成7位的字符串,长度不够则用0来凑齐
      $str=$device_name.str_pad($m,7,'0',STR_PAD_LEFT );
      //把字符串用'&'连接起来,并打印
      $strs .= '&'.$str;
    }
    $strs = substr($strs,1);
    print_r($strs);

  }

这已经达到我们的目的了,生成我们想要的字符串

三、php的sprintf()函数,自动填充
(1)定义
把百分号(%)符号替换成一个作为参数进行传递的变量:

由于参数过多,具体请参考手册:
http://www.w3school.com.cn/php/func_string_sprintf.asp

(2)具体代码

public function test_iot1(){
    $num = 10;
    $device_name = 'ABCD_';
    $m = 0;
    $strs = '';
    for($i = 0; $i<$num; $i++){
      $m = $m+1;
      //代码和上面的差不都
      $str=$device_name.sprintf('%07s', $m);
      //最主要就是这部分,填充替换
      $strs .= '&'.$str;
    }
    $strs = substr($strs,1);
    print_r($strs);
  }

解释:
      sprintf()的功能非常灵活,上面的格式字符串中,“%07s ”表示输出成长度为7的字符串,如果长度不足,左边以零补全;如果写成 “%7s ”,则默认以空格补全;如果希望使用其它字符补全,则要在该字符前加上单引号,即形如“%’#7s ”的表示以井号补全;最后,如果希望补全发生在 字符串右边,则在百分号后加上减号,“%-07s ”。

(3)具体效果

ABCD_0000001&ABCD_0000002&ABCD_0000003&ABCD_0000004&ABCD_0000005&ABCD_0000006&ABCD_0000007&ABCD_0000008&ABCD_0000009&ABCD_0000010
1
      这两种方法都能达到我们想要的目的。当然,这边只是测试一下,只生成了10条数据,而且我是按照自己的需求给拼接起来了。大家可以按照自己的需求来操作字符串。

end

0

评论区