在编程时,有时候会需要生成固定长度的空格或者特殊字符,以用于数据对齐等。
今天讨论用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
相关推荐
PHP生成(产生)随机字符串,可用来自动生成密码,默认长度6位,字母和数字混合等模式,支持随机生成中文字(汉字)。
要随机生成字符串代码如下: 在MySQL中定义一个随机串的方法,然后再SQL语句中调用此方法。 随机串函数定义方法: 代码如下: CREATE DEFINER=`root`@`localhost` FUNCTION `rand_string`(n INT) RETURNS varchar(255...
主要介绍了PHP生成自定义长度随机字符串的函数分享,需要的朋友可以参考下
<?php namespace Hashids; class Hashids implements HashidsInterface { const SEP_DIV = 3.5; const GUARD_DIV = 12;...本库是让整数生成唯一字符串的加密库,可以隐藏用户ID等多种用途。
通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。RandomLib-master生成随机数和随机字符串的...
通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。RandomLib-master生成随机数和随机字符串的...
substr是返回字符串的一个子串,用法是:substr(字符串,头,长度). 头位置是 从0算起的.如果是负数,则是从尾部向前数的意思. (3)Chr,Ord 类似于C的同名函数. (4)explode,implode,join 这些是和数组有关的函数. ...
本文实例讲述了php生成随机数/生成随机字符串的方法。分享给大家供大家参考,具体如下: 有时候我们的项目需要生成随机数,但是又不想那么麻烦,那么我们可以使用下面这5种方法生成。 第一种:mt_rand() <?php ...
两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
主要介绍了php生成固定长度纯数字编码的方法,涉及php字符串与数组的相关操作技巧,非常简单实用,需要的朋友可以参考下
本文实例讲述了php简单生成随机字符串的方法。分享给大家供大家参考,具体如下: 生成一组: <?php $str = "0123456789abcdefghijklmnopqrstuvwxyz~@#()_";//输出字符集 $n = 10;//输出串长度 $len = strlen($...
所以在生成的字符串长度较少的时候,会出现没有指定类型字符的情况。当然,修改起来也很简单,这里就不做添加了。 /** * @param string $type * @param $length * @return string */ function randomString($...
若有指定长度 length,则会写入指定长度字符串,或是写到字符串结束。 fclose ($fp);//函数用来关闭已经打开的文件的指针 fp。成功返回 true,失败则返回 false。 die ("写入模板成功"); } else { fclose ($fp); die...
当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度 function randomkeys($length) { $pattern = '1234567890...
本文实例讲述了php实现根据字符串生成对应数组的方法,是比较实用的技巧。分享给大家供大家参考。具体方法如下: 先看看如下示例: <?php $config = array( 'project|page|index' => 'content', 'project|page...
一、中文截取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处,起始处为0 $length,要截取的字数 $encoding,网页编码,如utf-8,GB2312,GBK 实例: 复制...
PHP生成随机密码类分享,生成的密码包含大小写英文字母及数字,可以供需要的朋友们学习参考。 ... 包含大小写字母,阿拉伯数字,特殊字符,密码长度,使用额外的特殊字符,从字符列中生成随机密码。
随机密码也就是一串固定长度的字符串,文章整理了几种生成随机字符串的方法。 方法一 1、在33 – 126中生成一个随机整数,如35。 2、将35转换成对应的ASCII码字符,如35对应#。 3、重复以上1、2步骤n次,连接成n位的...
PHP随机产生指定长度中文字符串 SMTP类 url地址参数加密 一些常用验证函数 下拉-单选框选择 创建多级目录 删除数组中相同元素,只保留一个 判断路径是绝对目录还是相对目录 利用PHP搜索指定目录下指定的文件...
本文实例讲述了php使用str_shuffle()...示例一:随机生成长度为10位数字的字符串。 $str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm"; str_shuffle($str); $name=substr(str_shuffle($str),26