PHP生成无效字符串

问题描述

有很多用于生成随机字符串的实现,这些随机字符串以一串允许的字符开头。我想做相反的事情并提供一个字符字母表来排除(允许所有其他人)。

这样做的目的是测试拒绝无效表单输入,因此它不需要加密安全,只需足够随机即可。我可以列举一堆无效的条目,但可能会遗漏一些东西。不希望一次性测试所有内容 - 每次测试运行可能会生成少量无效字符串进行断言,并且随着时间的推移会覆盖更多的完整色域。

类似于下面的内容,其中 $valid 包含要排除的允许字符。不确定是否有更快/更简单的方法来做到这一点。

function randomInvalidChar($valid = '') {
    do {
        $ord = mt_rand(0,1112063);            // size of utf-8 character set
        $char = mb_chr($ord,'UTF-8');
        $isValid = mb_strpos($valid,$char);
    } while ( $isValid !== false );

    return $char;
}

$random_string = randomInvalidChar('1234567890.+-*/^');

// => "Ȕ"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)