したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

Botの改造方法を紹介するスレ

5 うら :2010/01/15(金) 15:43:14
連続投稿回避関数つくった

// $messageを、投稿ログの各行と比較。違う文を選ぶまでループ。違う文を返します。
// 空のファイルtwit_log.txtをサーバにアップロードし、パーミッションを666に設定してください。
function rento_check(){
 $rento_limit = 10;  // n個前まで投稿を記録し、二重投稿を回避する
 //以前の投稿ログを読み込み
 $Posttweets = file_get_contents('twit_log.txt');  // 読み込み
 $p_tw = explode("\n", $Posttweets);  // 配列に格納
 //発言リストを読み込む
 $tweets = file_get_contents('RandomPost.txt');  //ランダム発言ファイル
 $tweets = trim($tweets);
 $tweets = preg_replace("@\n+@","\n",$tweets);
 $tw = explode("\n", $tweets);
 $message = $tw[array_rand($tw)];  //発言をランダムに一つ選ぶ
 
 while(true) {
   if(in_array($message, $p_tw)){  //発言にあるか?無ければ抜ける
     $message = $tw[array_rand($tw)];  //発言をランダムに一つ選ぶ
   }
   else { break; }  //無ければ抜ける
 }
 //投稿ログをローテート
 $p_tw2[0] = $message;
 for( $i = 1; $i < $rento_limit; $i++ ){  //1から$rento_limit直前まで
   if($p_tw[$i-1]) {
     $p_tw2[$i] = $p_tw[$i-1];  //古いのを送る。例:$p_tw2[1] = $p_tw[0]
   } else { break; }  //投稿が少ない時は抜ける
 }
 $p_tw_output = join("\n",$p_tw2);  //配列結合
 $fp = fopen('twit_log.txt', 'w');  //ファイルオープン
 flock($fp, LOCK_EX);  // ファイルのロック(排他制御)
 fwrite($fp,$p_tw_output);  //ファイル書き込み
 fclose($fp);  //ファイルクローズ
 
 return $message;  //違う文を戻り値として返す
}


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

■ したらば のおすすめアイテム ■

裸にいっぴん - 青山 裕企


この欄のアイテムは掲示板管理メニューから自由に変更可能です。


掲示板管理者へ連絡 無料レンタル掲示板