来源:1-6 PHP验证码制作之字母数字混合验证码实现

团酱

2014-09-02 11:12

老师的代码中有个小疏忽,在所截的图片中只出现了3个字符,是因为在截取字符时$fontcontent = substr( $data, rand( 0, strlen($data)), 1 );所取的随机数是0到strlen($data),而当取strlen($data)时所对应的字符不存在,因此改为$fontcontent = substr( $data, rand( 0, strlen($data)-1), 1 );

写回答 关注

5回答

  • qq_你是我的小苹果_0
    2015-12-11 17:59:29

    聪明。。


  • 花轻似梦
    2014-12-31 21:48:47

    我也遇到了这个问题,多刷新几次竟然还有一个验证码只有两个字符。

  • cnhanyi
    2014-10-19 12:20:34

    strlen 是取一个字符串长度,由于数组下标是从0开始的,-1之后表示最后一个字符的位置

  • sjywz
    2014-09-11 10:57:55

    strlen($data)时所对应的字符不存在,为什么会不存在呢?还有这句时strlen($data)是什么意思呢?老师好像没说?

    回眸淡然笑

    因为角标从0开始的,strlen($data)为第n+1个,总共才n个

    2014-09-17 18:42:34

    共 1 条回复 >

  • 好好学习啊
    2014-09-03 10:12:19

    对的,呵呵,不好意思录制视频时候光顾讲了,没来得及操心代码~ 聪明的同学~

    Peeta 回复不等号

    因为取不到 strlen($data) 这个值

    2015-08-29 18:41:36

    共 2 条回复 >

PHP实现验证码制作

各种形态验证码核心原理与实现技巧,讲解实现过程中的技术难点

37929 学习 · 338 问题

查看课程

相似问题

回答 1

回答 2

回答 3

回答 1

回答 11