[英](PHP) randomly insert a 10 word sentence into a large text document
我有140k或更大的充满文本段落的大文本文件,并且仅当文件包含200个以上的单词时,才需要在该文件中随机插入一个句子。
我需要在整个较大的文档中随机插入的句子长10个字。
我对运行LAMP站点的服务器具有完全控制权,因此可以使用PHP或linux命令行应用程序(如果存在的话)为我完成此操作。
任何有关如何最好地解决此问题的想法将不胜感激。
谢谢
标记
您可以使用str_word_count()
来获取字符串中的单词数。 从那里,确定是否要插入字符串。 至于“随机”插入,可能很危险。 您是说建议您将其插入几个随机区域吗? 如果是这样,请使用file()
将文件的内容作为数组加载,并在$file[0]
和count($file);
之间的任何位置插入您的句子count($file);
下面的代码应该可以找到将字符串插入随机位置的技巧。 从那里您只需要重写文件。 这是一种非常粗略的方法,没有考虑标点符号或类似的东西,因此很有可能需要进行一些微调。
$save = array();
$words = str_word_count(file_get_contents('somefile.txt'), 1);
if (count($words) <= 200)
$save = $words;
else {
foreach ($words as $word) {
$save[] = $word;
$rand = rand(0, 1000);
if ($rand >= 100 && $rand <= 200)
$save[] = 'some string';
}
}
$save = implode(' ', $save);
这将生成一个随机数,并检查它是否在100到200之间(包括100和200之间),如果包含,则放入随机字符串中。 您可以更改随机数和支票的范围,以增加或减少添加的数量。 您还可以实现一个计数器来执行类似的操作,例如,确保每个字符串之间至少有x
单词。
再一次,这没有考虑标点符号或其他任何东西,只是假设所有单词都用空格分隔。 因此,可能需要进行一些微调以使其完善,但这应该是一个很好的起点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.