在UTF8中, 1个汉字=3个字节。
这里存在换行,1个换行符 '\n' = 1个字节。前三个汉字正常分割,然后还有 一个换行符+1个汉字=4字节,
结果很显然,换行符吞掉了后面的两个字节。
已经找到解决办法了:把字体文件的路径赋值就好了,而不是字体文件的名称
正确:$fonttype="D:\wamp64\www\project01\STKAITI.TTF"
失败:$fonttype='STKAITI.TTF';
错误代码在上文第六行
谢谢了
有可能PHP程序未接收到请求,处理超时了;
有可能浏览器缓存问题,建议在请求的地址后面加上一随机数来刷新,有效防止浏览器缓存该链接结果;
也没错误提示,就是不显示
字符串是从0开始计数的,楼上是误人子弟,比如abcdefg,a的话位置是0,如此类推,最后一位,就是总长度减1,没毛病的
你都不贴代码怎么看错啊
爆炸 有毒
你可以用CSS来改!
除非你有渠道能获取到其他事先存在的一对汉字数据,否则就要自己定义。
我也遇到了,不是楼上的问题,是你的$str汉字集不是utf-8编码,你需要先把你搞来的汉字文本改成utf-8格式才可以,我刚刚解决这个问题了,一定删了$str='...........';重新写一个
将 .php文件重新另存为 UTF-8 无BOM 的编码格式,让后就行了
谢谢你,我已经改了这个,可是图片乱码哎
header函数前面的代码不能有任何输出语句,不然就会报这样的错误
$index = rand(0,count($strdb)-1); 这样就可以了。
$index = rand(0,count($strdb)-1); 这样就可以了。
不能啊
window系统的话在c盘windows下面的fonts有电脑的所有字体文件,水果机的话资源库下面的fonts就有
哈哈哈
// count()后面要减去1,因为数组下标是从0开始。否则有的验证码图片不会正常显示
$index = rand(0,count($strdb)-1);
本人觉得,汉字一定要找常用的几个即可。验证码的主要作用只是为了防止服务器过载。只要是启到这个效果杰即可。不需要大费周章的去找那么多。当然文件的读取字符的内容也是可以的。
// count()后面要减去1,因为数组下标是从0开始。否则有的验证码图片不会正常显示
$index = rand(0,count($strdb)-1);
都可以啊,
$captch_code.=$cn;
都要指定UTF8的编码
编码不对,要指定为utf-8,而且字体文件要支持中文
可能是字体的问题。
php文件的编码换成utf8无bom头的就行了,别用windows自带的记事本打开,用第三方工具,比如editplus sublime之类的,要记得编码为utf8 无 bom!!!
utf8无bom
utf8无bom
utf8无bom
php文件编码换成utf8无bom就行了