(PHP)将10个单词的句子随机插入一个大文本文档中

时间:2009-08-23 02:44:26

标签: php string insert random document

我有大量文本文件140k或更大的文本段落,只有当文件包含200多个单词时,才需要以随机的间隔插入一个句子。

我需要在较大的文档中随机插入的句子长度为10个单词。

我可以完全控制运行我的LAMP站点的服务器,这样我就可以使用PHP或Linux命令行应用程序(如果存在的话)可以为我做这个。

非常感谢任何有关如何最好地解决这个问题的想法。

由于

标记

2 个答案:

答案 0 :(得分:1)

您可以使用str_word_count()来获取字符串中的字数。从那里,确定是否要插入字符串。至于“随机”插入它可能是危险的。你的意思是建议你想把它插入几个随机区域吗?如果是这样,请将文件内容加载为file()的数组,并在$file[0]count($file);之间的任意位置插入

答案 1 :(得分:0)

以下代码应该可以找到并将字符串插入随机位置。从那里你只需要重写文件。这是一种非常粗暴的方式,并没有考虑标点符号或类似的东西,因此很可能需要进行一些微调。

$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之间,如果是,则输入随机字符串。您可以更改随机数的范围和检查的范围,以增加或减少添加的数量。您还可以实现一个计数器,以确保每个字符串之间至少有x个单词。

同样,这不会考虑标点符号或任何内容,只是假设所有单词都用空格分隔。因此,完善它可能需要一些微调,但这应该是一个很好的起点。