Heim >Backend-Entwicklung >PHP-Tutorial >javascript - php制作中文验证码的文字数组问题

javascript - php制作中文验证码的文字数组问题

WBOY
WBOYOriginal
2016-06-06 20:09:351001Durchsuche

<code>在做一个php中文验证码时,按原本的思路是将一段文字分割成一个个文字组成个文字数组,然后遍历四次,随机生成四个验证文字,然后画在image上,可是发现用`str_split($str,3)`来分割有时会少一个文字,换成`explode(" ",$str)`还是偶尔缺字。。。

主要代码如下:`

 $fontFace='aa.ttf';
    $str=" 大 闸 是 中 国 主 导 品 牌 亦 行 业 协 会 重 点 推 荐 家 集 养 殖 与 销 售";
    $strDb=str_split($str,3);
for($i=0;$i</code>

回复内容:

<code>在做一个php中文验证码时,按原本的思路是将一段文字分割成一个个文字组成个文字数组,然后遍历四次,随机生成四个验证文字,然后画在image上,可是发现用`str_split($str,3)`来分割有时会少一个文字,换成`explode(" ",$str)`还是偶尔缺字。。。

主要代码如下:`

 $fontFace='aa.ttf';
    $str=" 大 闸 是 中 国 主 导 品 牌 亦 行 业 协 会 重 点 推 荐 家 集 养 殖 与 销 售";
    $strDb=str_split($str,3);
for($i=0;$i</code>

javascript - php制作中文验证码的文字数组问题
两个点,第一个是$str不用空格分开,第二个是生成随机index的时候,应该是-1,不是+1
像这种取数组中某个随机值的时候,index可以用array_rand()函数来生成
改完如下

<code>$fontFace='aa.ttf';
    $str="大闸是中国主导品牌亦行业协会重点推荐家集养殖与销售";
    $strDb=str_split($str,3);
for($i=0;$i</code>

用mb扩展的函数处理字符串,解决编码问题,另外空格有啥用么?

如果$str含中英文用这个分割$strDb=preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY);

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn