问答详情
源自:1-6 PHP验证码制作之字母数字混合验证码实现

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

提问者:团酱 2014-09-02 11:12

个回答

  • 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)是什么意思呢?老师好像没说?

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

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