php - 从文本文件中选择 6 个以上 10 个字符以下的随机字符串

标签 php random

我有一个文本文件,我需要选择一个长度超过 6 个字符且小于 10 个字符的随机字符串。通常,我会使用类似 this 的脚本,这可行,但由于它需要一定的长度,所以行不通。有人对此有解决方案吗?

示例输入是这样的:

Apple
Banana
Orange
Strawberry
Blueberry
Pineapple
Somelongfruithere

这些值将在一个 .txt 文件中,每个文件都有一个换行符。允许使用的字符串示例是 pineapple,但不允许使用 appleSomlongfruithere

最佳答案

你需要做这样的事情:

$lines = array();
$tmpLines = file('random.txt');
for($i = 0; $i < count($tmpLines); ++$i)
{
    if(strlen($tmpLines[ $i ]) > 6 && strlen($tmpLines[ $i ]) < 10)
    {
        $lines[] = $tmpLines[ $i ];
    }
}
$randomWord = $lines[ array_rand($lines) ];

更短的方式,在行数方面,是这样的(但安全性要差得多):

$randomWord = '';
$lines = file('random.txt');
while(strlen($randomWord) <= 6 || strlen($randomWord) >= 10)
    $randomWord = $lines[ array_rand($lines) ];

第一个选项获取文件中的所有行,并且仅将长度在 6 到 10 个字符之间的行复制到另一个数组。从该数组中选择一个随机元素时,“保证”您对任何随机字符串都有合理的访问时间。

第二个选项只是继续选择一个随机字符串,直到选择了一个合适的长度,但可能可能需要一段时间,具体取决于随机数生成器的心情。不太可能,但我不想冒险。在我的书中,始终将可靠性视为最佳方法。

关于php - 从文本文件中选择 6 个以上 10 个字符以下的随机字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10201834/

相关文章:

php - DOM。从选项标签中的给定文本获取值属性

php - MySQL向列插入重复单词的数量

PHP 显示/下载网络服务器根目录之外的目录文件

python - 生成给定总和的随机(int)列表python

PHP随机行帮助

c++ - 实现二进制搜索猜谜游戏

javascript - 如何为 wordpress 创建插件

java - PDFLib 在 PHP 中获取图层名称和句柄

random - elm 中的随机生成器如何工作?

c++ - boost c++ 使用 Mersenne Twister 算法在 0 和 1 之间生成相同的随机数?