Created
October 31, 2012 14:19
-
-
Save pha/3987271 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function createtext($min = 0, $max = 999999999, $kakko = FALSE){ | |
//ログ読み込み | |
$logfile = "tools4/today.txt"; | |
$log = @file_get_contents($logfile); | |
$log = explode("\t", $log); | |
$array_start = unserialize($log[0]); | |
$array_markov = unserialize($log[1]); | |
//カギカッコの水増し | |
if($kakko === TRUE){ | |
for($i=0;$i<5;$i++){ | |
$array_start[] = "「"; | |
} | |
} | |
//出だしの単語を決める | |
$pre1 = $array_start[array_rand($array_start)]; | |
//出だしの3単語を作る | |
$pre2 = @array_rand($array_markov{$pre1}); | |
$pre3 = @array_rand($array_markov{$pre1}{$pre2}); | |
$suf1 = $array_markov{$pre1}{$pre2}{$pre3}[@array_rand($array_markov{$pre1}{$pre2}{$pre3})]; | |
$string = $pre1.$pre2.$pre3.$suf1; | |
//文章を組み立てるループ 完成したら抜ける | |
$i = 0; | |
while(1){ | |
$pre1 = $pre2; | |
$pre2 = $pre3; | |
$pre3 = $suf1; | |
$suf1 = $array_markov{$pre1}{$pre2}{$pre3}[@array_rand($array_markov{$pre1}{$pre2}{$pre3})]; | |
$string = $string.$suf1; | |
//末尾が「。」「?」「!」で十分な長さに達してたら抜ける | |
if (($suf1 == "。" && mb_strlen($string,"UTF8") > $min && mb_strlen($string,"UTF8") < $max) || $suf1 == "?" || $suf1 == "!"){ | |
break; | |
} | |
//maxを超えた場合最初の3語をセットし直す もしくは何かエラーの場合 NGワード含む場合 | |
if (mb_strlen($string,"UTF8") > $max || $pre1 == false || $pre2 == false || $suf1 == false || check_text($string) === false){ | |
$rand_keys = array_rand($array_start); | |
$pre1 = $array_start[$rand_keys]; | |
$pre2 = @array_rand ($array_markov{$pre1}); | |
$pre3 = @array_rand($array_markov{$pre1}{$pre2}); | |
$suf1 = $array_markov{$pre1}{$pre2}{$pre3}[@array_rand($array_markov{$pre1}{$pre2}{$pre3})]; | |
$string = $pre1.$pre2.$pre3.$suf1; | |
} | |
} | |
return $string; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment