【发布时间】:2017-01-20 22:09:24
【问题描述】:
我正在编写一个简单的 PHP 函数,该函数将访问 word-list.txt 并拉出一个随机单词(单词由新行分隔)。该单词的最大长度必须为 $maxlength。按照我写的方式,它会拉出单词,如果长度太长,它会不断获取一个新单词,直到它小于或等于 $maxlength。我遇到的问题是脚本在最大执行时间内返回了一个致命错误。代码如下:
function GetWord($maxlength) {
$file_content = file('word-list.txt');
$nword = $file_content[array_rand($file_content)];
while(mb_strlen($nword) > $maxlength) {
$nword = $file_content[array_rand($file_content)];
}
return $nword;
}
我能想到的唯一替代方法是将单词表放入数据库中,并有一列包含每个对应单词的长度。这将允许我根据它们的长度选择单词选择。然而,我试图避免使用数据库,所以我想找出我的脚本有什么问题。任何帮助是极大的赞赏。谢谢!
【问题讨论】:
-
我应该提到的是这个文件相当大,包含超过 9,000 行。这导致一些给定的建议仍然超时。
标签: php file random strlen word-list