2009-08-23 14 views
2

140k以上の大文字のテキストファイルがあり、このファイルに文章をランダムに挿入する必要があります。 200ワード(PHP)大文字の文書にランダムに10語の文章を挿入する

大きな文書全体に無作為に挿入する必要がある文章は10語です。

私はLAMPサイトを実行しているサーバーを完全に制御しているので、PHPまたはLinuxのコマンドラインアプリケーションを使用することができます。

この問題にどのように対処するかについてのご意見をいただければ幸いです。

おかげ

マーク

+5

@scunliffe - すべての点で敬意を表しますが、それは私たちのビジネスではありません。私たちはここでプログラミングの質問に答えるために、人々の個人的なビジネスを掘り下げることはしていません。 – Sampson

+1

@Jonathan Sampson - スパムには貢献したくありません。 –

+5

@Shawn、scunliffe:だから?脳細胞が働いているスパマーは、その告発を否定するだろう。あなたは実際には*「はい、これはスパムのためのものです、私の質問に答えないでください」* OPのプロフィールを見れば、彼は何らかの形でテキストを音声に変換しますが、これはランダムな広告/著作権/透かしそれをスピーチする前にテキストに挿入する。人を殺す以外にナイフでたくさんのことをすることができます。何のためにも妄想的ではありません。 :) – deceze

答えて

1

あなたは、文字列内の単語の数を取得するためにstr_word_count()を使用することができます。そこから、文字列を挿入するかどうかを決定します。それを「無作為に」挿入するのは危険です。あなたはカップルのランダムな領域に挿入することを提案したいのですか?もしそうなら、中file()を持つ配列として、ファイルの内容をロードし、次のコードを探し、ランダムな位置に文字列を挿入するためのトリックを行う必要があります

+0

は、「あなたはカップルのランダムな分野でそれを挿入する提案することを意味しますか?」はい、これは私が行う必要があると考えていたものです。ありがとうございました –

0

$file[0]間とcount($file);どこでもあなたの文章を挿入します。そこからファイルを書き直すだけです。これは非常に粗雑な方法であり、句読点などを考慮しないため、微調整が必​​要になる可能性が最も高いです。それはそうならば、ランダムな文字列を入れ、100と200包括との間だ場合

$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); 

これは乱数とチェックを発生させます。乱数の範囲と小切手の範囲を変更して、追加する数を増減できます。各文字列の間に少なくともx個の単語があることを確認するなど、何かを行うカウンタを実装することもできます。

この場合も、句読点などは考慮されておらず、すべての単語がスペースで区切られていることを前提としています。だから、それを完璧にするためには微調整が必​​要かもしれませんが、これは良い出発点です。

+0

このStevenのおかげで、私はそれを感謝し、それを試してみましょう。 マーク –

関連する問題