■twittbotのランダムな文字のタグ風
twittbotからEasyBotterに引っ越しする時に、一番重要&大変だったことがこれ。 →置き換えタグ-ランダムな文字 ツイボの置き換えタグの「ランダムな文字」をかなり使ってたから、そのまま移転できなかったし。 それについてはEasyBotterではもっと柔軟というか色々出来たり使い回しのできる方法があるからそれはいいんだけど。ただこのツイボの「{random:大吉,中吉,吉,末吉,凶,大凶}」みたいなのは、 ちょっとした変化を付けたいだけのこぢんまりとしたランダムさが欲しい時には、 これはこれで便利だったり。 ツイボの時は語尾変化で{random:!,!!}(!と!!みたいな)とかなんとなくつけてたけど、今はそれはやるのも大仰な気はするし……。 てことで一応これに似た機能をEasyBotterに追加してみたりー。 1ツイートにつき1個しか扱えない不完全仕様だけど……(;´∀`) てことでテスト用の作った所でこっち書いてるので、テスト用の中身そのままぺたぺた。 一応がんばった……。・参考にさせて頂いた所→http://bot.jilu.mods.jp/?eid=4
$text = "こんにちわ世界。おみくじは{random:大吉,中吉,吉,末吉,凶,大凶}";
//てすとおk
echo $text."
↑が$textの元々の中身";
//{random:★,★,★,★}
if(strpos($text,"{random:") !== FALSE){
//てすとおk
echo "if(strposで{random:があったよ";
//{random:★,★,★,★}の中身を取得
//{}が複数あるとまともに動かない問題には未対処
$rndtxt0 = ereg_replace(".*{random:(.*)}.*","\\1",$text);
//てすとおk
echo "ereg_replaceで{ }のなかみ\\1を取り出したり→".$rndtxt0;
//配列にいれる
$txtarray = explode(",",$rndtxt0);
//てすとおk
echo "配列にいれた→";
//配列の中身表示
print_r($txtarray);
//配列からランダムに取り出す
$nakami = $txtarray[array_rand($txtarray)];
//てすとおk
echo "なかみ$nakami→".$nakami."";
//置換する
$text = ereg_replace("{random:(.*)}","{randomx}",$text);
$text = str_replace("{randomx}",$nakami,$text);
//★てすとok
}
//上、if(strposのかっことじ
//表示してみる
echo "結果の$textはこう↓
";
echo $text;
(・ω・`。)
echoとかのテスト結果の表示例がこんな。
こんにちわ世界。おみくじは{random:大吉,中吉,吉,末吉,凶,大凶}
↑が$textの元々の中身
if(strposで{random:があったよ
ereg_replaceで{ }のなかみ\1を取り出したり→大吉,中吉,吉,末吉,凶,大凶
配列にいれた→Array ( [0] => 大吉 [1] => 中吉 [2] => 吉 [3] => 末吉 [4] => 凶 [5] => 大凶 )
なかみ$nakami→中吉
結果の$textはこう↓
こんにちわ世界。おみくじは中吉
(;´∀`)
あとはテスト用のechoとかの部分を削除して(ここに保管したし)、いじぼphpに適当に貼り付ければ使えるはずー。
これでいいかなあ?
if(strpos($text,"{random:") !== FALSE){
//{random:★,★,★,★}の中身を取得
//{}が複数あるとまともに動かない問題には未対処
$rndtxt0 = ereg_replace(".*{random:(.*)}.*","\\1",$text);
//配列にいれる
$txtarray = explode(",",$rndtxt0);
//配列からランダムに取り出す
$nakami = $txtarray[array_rand($txtarray)];
//置換する
$text = ereg_replace("{random:(.*)}","{randomx}",$text);
$text = str_replace("{randomx}",$nakami,$text);
}
今の所、特にbotのつぶやき内容をいじる予定はないけど……。
おわり。
(最終更新日:2012/06/01)