为了账号安全,请及时绑定邮箱和手机立即绑定

substr(strlen) 函数解释说明

substr($data,rand(0,strlen($data)),1);这个函数的解释?    这样取值是随机多少个?

还有的地方看到最后是-1   这又是什么意思?

正在回答

2 回答

这是PHP中的代码,我们从括号里往外看:

strlen()用于返回字符串$data的长度,假设$data字符串长度为10;

rand(0,strlen($data))生成0~10中的一个随机整数并返回,假设返回6;

substr($data,rand(0,strlen($data)),1);先简化为:

substr($data,6,1);就是返回$data字符串中从下标为6的字符开始截取1个字符并返回;

假设$data="一二三四五六七八九十";

就是先用strlen()得到这个字符串的长度10,然后用rand()从0~10中取一个随机整数6,然后用这个整数6做下标用substr()取出字符串中对应的字符"七"。

这串代码应该有点问题,因为字符串的长度会比字符串的最大下标大1,所以应该是strlen($data)-1。

修正后的代码可以在PHP中用于在若干个自定义字符中随机选取若干个生成验证码

$data = 'abcdefghijkmnpqrstuvwxyQWERTYUIOPLKJHGFDSAZXCVBNM3456789';

  $code = ""; //定义一个空字符串

  for ($i = 0; $i < 4; $i++) { //循环四次

    $code .= substr($data, rand(0, strlen($data)-1), 1); //将随机取出的字符拼入字符串$code中

  } 

上述代码就是在所有大小写字母和数字中随机选取4个字符(除了小写l,z,o,数字1,2)当成验证码保存在$code中。

1 回复 有任何疑惑可以回复我~

-1反方向开始长度1

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

substr(strlen) 函数解释说明

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信