`

生成固定长度的某字符的字符串 PHP

阅读更多

在编程时,有时候会需要生成固定长度的空格或者特殊字符,以用于数据对齐等。

今天讨论用php生成固定长度的某字符的字符串的一些方法。

 

方法一:二倍迭代拼接

 

function getchars($c,$length){
        $binchars = decbin($length);
        $binchars_arr = str_split($binchars);
        $ret="";
        $char=$c;
        for($i=strlen($binchars)-1;$i>=0;$i--){
                $binchars_arr[$i]=="1" && $ret=$ret.$char;
                $char=$char.$char;
        }
        return $ret;
}

 受到方法一的启发,每次拼接三倍长度的字符,得到方法而。

 

方法二:三倍迭代拼接

 

function getchars_t($c,$length){
        $binchars = base_convert($length,10,3);
        $binchars_arr = str_split($binchars);
        $ret="";
        $char=$c;
        for($i=strlen($binchars)-1;$i>=0;$i--){
                $binchars_arr[$i]=="1" && $ret=$ret.$char;
                $binchars_arr[$i]=="2" && $ret=$ret.$char.$char;
                $char=$char.$char.$char;
        }
        return $ret;
}

 

方法三:php函数str_repeat

 

function getchars_p($c,$length){
        return str_repeat($c,$length);
}

 

方法四:php函数,间接运算

 

function getcharscmp($c,$length){
        $char="`123~!@#";
        return substr(str_pad($char,strlen($char)+$length,$c),strlen($char));
}

 

方法五:php函数,字符串格式化

 

function getchars_s($c,$length){
        $a = sprintf("%".$length."s"," ");
        $a = str_replace(" ",$c,$a);
        return $a;
}

 

 

然后,对上述五种方法进行效能测试,执行15000000次生成4个空格字符串的时间如下,单位为“秒”:

                      getchars  :  6.7469990253448
                    getchars_t  :  7.7568290233612
                    getchars_p  :  1.4614100456238
                   getcharscmp  :  3.2170360088348
                    getchars_s  :  4.1925320625305

1
0
分享到:
评论

相关推荐

    PHP生成随机字符串

    PHP生成(产生)随机字符串,可用来自动生成密码,默认长度6位,字母和数字混合等模式,支持随机生成中文字(汉字)。

    MySQL中随机生成固定长度字符串的方法

    要随机生成字符串代码如下: 在MySQL中定义一个随机串的方法,然后再SQL语句中调用此方法。 随机串函数定义方法: 代码如下: CREATE DEFINER=`root`@`localhost` FUNCTION `rand_string`(n INT) RETURNS varchar(255...

    PHP生成自定义长度随机字符串的函数分享

    主要介绍了PHP生成自定义长度随机字符串的函数分享,需要的朋友可以参考下

    hashids.php-master整数生成唯一字符串的加密库.zip

    <?php namespace Hashids; class Hashids implements HashidsInterface {  const SEP_DIV = 3.5;  const GUARD_DIV = 12;...本库是让整数生成唯一字符串的加密库,可以隐藏用户ID等多种用途。

    php生成固定长度纯数字编码的方法

    主要介绍了php生成固定长度纯数字编码的方法,涉及php字符串与数组的相关操作技巧,非常简单实用,需要的朋友可以参考下

    [示例][PHP]RandomLib-master生成随机数和随机字符串的PHP库.zip

    通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。RandomLib-master生成随机数和随机字符串的...

    RandomLib-master生成随机数和随机字符串的PHP库.zip

    通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。RandomLib-master生成随机数和随机字符串的...

    如何使用PHP中的字符串函数

    substr是返回字符串的一个子串,用法是:substr(字符串,头,长度). 头位置是 从0算起的.如果是负数,则是从尾部向前数的意思. (3)Chr,Ord 类似于C的同名函数. (4)explode,implode,join 这些是和数组有关的函数. ...

    php生成随机数/生成随机字符串的方法小结【5种方法】

    本文实例讲述了php生成随机数/生成随机字符串的方法。分享给大家供大家参考,具体如下: 有时候我们的项目需要生成随机数,但是又不想那么麻烦,那么我们可以使用下面这5种方法生成。 第一种:mt_rand() <?php ...

    把整数生成唯一字符串的PHP库.zip

    两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

    php简单生成一组与多组随机字符串的方法

    本文实例讲述了php简单生成随机字符串的方法。分享给大家供大家参考,具体如下: 生成一组: <?php $str = "0123456789abcdefghijklmnopqrstuvwxyz~@#()_";//输出字符集 $n = 10;//输出串长度 $len = strlen($...

    PHP生成指定随机字符串的简单实现方法

    所以在生成的字符串长度较少的时候,会出现没有指定类型字符的情况。当然,修改起来也很简单,这里就不做添加了。 /** * @param string $type * @param $length * @return string */ function randomString($...

    PHP生成Html文件

    若有指定长度 length,则会写入指定长度字符串,或是写到字符串结束。 fclose ($fp);//函数用来关闭已经打开的文件的指针 fp。成功返回 true,失败则返回 false。 die ("写入模板成功"); } else { fclose ($fp); die...

    PHP生成随机字符串实例代码(字母+数字)

    当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度 function randomkeys($length) { $pattern = '1234567890...

    php实现根据字符串生成对应数组的方法

    本文实例讲述了php实现根据字符串生成对应数组的方法,是比较实用的技巧。分享给大家供大家参考。具体方法如下: 先看看如下示例: <?php $config = array( 'project|page|index' => 'content', 'project|page...

    php生成随机密码类.zip

    PHP生成随机密码类分享,生成的密码包含大小写英文字母及数字,可以供需要的朋友们学习参考。 ... 包含大小写字母,阿拉伯数字,特殊字符,密码长度,使用额外的特殊字符,从字符列中生成随机密码。

    PHP生成随机字符串(3种方法)

    随机密码也就是一串固定长度的字符串,文章整理了几种生成随机字符串的方法。 方法一 1、在33 – 126中生成一个随机整数,如35。 2、将35转换成对应的ASCII码字符,如35对应#。 3、重复以上1、2步骤n次,连接成n位的...

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    PHP随机产生指定长度中文字符串 SMTP类 url地址参数加密 一些常用验证函数 下拉-单选框选择 创建多级目录 删除数组中相同元素,只保留一个 判断路径是绝对目录还是相对目录 利用PHP搜索指定目录下指定的文件...

    php使用str_shuffle()函数生成随机字符串的方法分析

    本文实例讲述了php使用str_shuffle()...示例一:随机生成长度为10位数字的字符串。 $str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm"; str_shuffle($str); $name=substr(str_shuffle($str),26

    PHP实现给定一列字符,生成指定长度的所有可能组合示例

    生成长度 1:a, b, c, d, e; 长度2 :aa, ab, ac, ad, ae, ba, bb, bc, bd, be,…………….ee <?php function de($len, $pos = 0) { static $bit = []; static $source = ['a', 'b', 'c', 'd', 'e'];/*[0, 1, ...

Global site tag (gtag.js) - Google Analytics