在编程时,有时候会需要生成固定长度的空格或者特殊字符,以用于数据对齐等。
今天讨论用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
相关推荐
本文将详细讲解如何在MySQL中定义并使用一个函数来生成固定长度的随机字符串。 首先,我们创建一个名为`rand_string`的自定义函数。这个函数接受一个整数参数`n`,表示需要生成的字符串长度。函数内部定义了一个...
掌握这些知识点后,我们可以实现一个通用的随机字符串生成器,只需调整`$len`的值,即可自定义生成任意长度的随机字符串。此外,为了安全和多样性,根据实际应用场景还可以考虑在字符集中加入特殊字符,进一步增强...
PHP生成(产生)随机字符串,可用来自动生成密码,默认长度6位,字母和数字混合等模式,支持随机生成中文字(汉字)。
在本文中,我们将介绍一个PHP函数,该函数能够生成指定长度的随机字符串。 首先,我们来理解函数的基本结构。该函数名为random,接收一个参数$length,这个参数指定了要生成的字符串的长度。函数首先使用`srand...
在PHP中,截取字符串并生成文章摘要是常见的任务,特别是在构建内容管理系统或者博客平台时。这个过程涉及到字符串处理和文本分析技术。下面我们将详细探讨如何使用PHP来实现这一功能。 首先,PHP提供了多种内置...
而这个字符串类可能提供了一个便捷的静态方法,允许开发者指定字符串长度和字符集,一键生成所需的随机字符串。 其次,单次截取字符串是另一个常见的需求。PHP中的`substr()`函数就是用来实现这一功能的,但自定义...
**功能描述:** 计算字符串中某子串出现的次数。 **示例代码:** ```php $haystack = "hello world, hello again"; $needle = "hello"; echo substr_count($haystack, $needle); // 输出 2 ``` ##### `mb_strlen` ...
`str_shuffle`函数可以随机打乱一个字符串的字符顺序,然后通过`substr`截取指定长度的部分,得到随机字符串。 ```php function generateRandomString($length) { $chars = '...
<?php namespace Hashids; class Hashids implements HashidsInterface { const SEP_DIV = 3.5; const GUARD_DIV = 12;...本库是让整数生成唯一字符串的加密库,可以隐藏用户ID等多种用途。
3. 边界处理:类库可能还包含了处理边界情况的逻辑,例如当字符串长度小于截取长度时,如何返回原始字符串,或者当字符串长度远大于截取长度时,如何处理过多的字符。 4. 国际化支持:考虑到可能处理多种语言的字符...
需要注意的是,随着字符串长度和组合长度的增加,生成的组合数量会迅速增长,可能导致性能问题。在这种情况下,可以考虑优化算法或使用更高效的数据结构,如位向量,来减少计算时间和内存消耗。 总结,本文详细介绍...
例如,可以使用`base_convert`将整数转换为字符串,然后通过SHA256或MD5等哈希函数得到一个固定长度且不可逆的唯一字符串。这种方式既保留了整数的唯一性,又增加了额外的安全性。 在描述中提到的加密类,可能包含...
通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。RandomLib-master生成随机数和随机字符串的...
由于原始字符串长度为8,所以最后会生成3个长度为3的子字符串: ```php array(3) { [0] => string(3) "abc" [1] => string(3) "def" [2] => string(2) "gh" } ``` ### 更高级的使用场景 除了基本的字符串拆分...
通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。RandomLib-master生成随机数和随机字符串的...
在示例中,`GetRandStr` 函数使用 `mt_rand()` 生成0到字符串长度减1之间的随机数,作为索引获取字符串 `$str` 中的字符,从而生成随机字符串。 ```php function GetRandStr($length) { $str = '...
除了手动编写代码,还有在线工具可以帮助生成随机字符串,比如文中提到的“在线随机数字/字符串生成工具”和“高强度密码生成器”,这些工具通常提供了丰富的选项,如字符类型、字符串长度等,方便开发者快速生成所...
`get_code()`函数是一个关键部分,它的作用是根据指定的长度和模式生成随机字符串。这个函数接受两个参数: 1. `$length`:一个整数,表示生成的随机字符串的长度,默认值为32。 2. `$mode`:一个整数,定义了生成...