人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPスクリプトで、サーバーにUPしてあるテキストの中から、ランダムに文字を表示させるにはどのようなプログラムを具体的に書けばいけますか? 具体的には、例えば「動物.txt」の中にたぬききつねねことかかれていた場合、ランダムに「たぬき」や「きつね」、「ねこ」を表示させたいのです。また、そのテキストに文字を加えるだけで増やせるようにしたいと思っています。携帯サイトで使いたいと思っているスクリプトなので、PHPでと考えています。注)http://atom.hostmycgi5.com/index.php?sknnam=sample/randomt.shtmのようなつくりだと、項目を増やすとき、プログラムもかえないといけないので。 PHPを使えるプログラマーの方よろしくお願いします。

●質問者: HAYA
●カテゴリ:コンピュータ
✍キーワード:PHP txt 「ねこ」 たぬき ねこ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● shoma
●10ポイント

http://jp2.php.net/manual/ja/function.array-rand.php

PHP: array_rand - Manual

URLは以下の関数のマニュアルです。

array_rand -- 配列から一つ以上の要素をランダムに取得する

<?php

//テキストファイル

$file = ”./animals.txt”;

$words = file($file);

print array_rand($word);

?>


2 ● sasada
●10ポイント

http://www.matsusaka-u.ac.jp/~okumura/php/rand.php

PHPで、乱数を発生させるのには、

<?php

srand((double) microtime() * 1000000);

$janken[0] = ”グー”; $janken[1] = ”チョキ”; $janken[2] = ”パー”;

echo $janken[rand(0, 2)];

?>

などとします。

この例では、srand((double) microtime() * 1000000)で初期化して、rand(0, 2)で0から2の乱数を得ています。

http://ww7.tiki.ne.jp/~inabah/php/002_006.htm

今回の例では、動物.txtの要素の数で、乱数を作ることになります。

動物の要素が配列 $dobutuに格納されているとすれば、その要素数はcount($dobutu)ですので、配列の添え字は 0からcount($dobutu) です。

したがって、乱数はrand(0, count($dobutu))で求めればよいことになります。

動物.txtから配列 $dobutuを作る方法は、動物.txtのフォーマットに依存しますので、ここでは説明しませんが、わかりますよね。

http://www.php.net/manual/ja/

PHP: PHP マニュアル - Manual

おまけです。

PHPのマニュアルです。ご参考までに。


3 ● accessmania
●10ポイント

http://www.hatena.ne.jp/1065389330#

PHPスクリプトで、サーバーにUPしてあるテキストの中から、ランダムに文字を表示させるにはどのようなプログラムを具体的に書けばいけますか? 具体的には、例えば「動.. - 人力検索はてな

URLはダミーです。

●動物.txtの中は下記の通り

たぬき

きつね

ねこ

●スクリプト

<?php

$arr = file(”動物.txt”);

mt_srand((double)microtime()*1000000);

print $arr[mt_rand(0,count($arr)-1)];

?>

で実現できると思います。


4 ● nikuzure
●60ポイント

http://www.yahoo.com/

Yahoo!

URLはダミーです。

私の環境では動きましたので試してください。

同じ階層にtext.txtを置くと、その中からランダムに

一行表示します。

一行単位で読み込んでいるので、文章の途中で改行は入れないでください。

以下をコピーしてください--------------------

<?php

//┏━━━━━━━━━━━━━┓

//┃テキストランダム表示簡易版┃

//┃ ┃

//┗━━━━━━━━━━━━━┛

//┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

//┃ヘッダ表示部

//┃・メタタグ内のcharsetは、文字コードに応じて変える

//┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

print <<<_HTML_

<html>

<head>

<meta http-equiv=”Content-Type” content=”text/html ; charset=EUC-JP”>

<title>ランダム表示</title>

</head>

_HTML_;

//┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

//┃メイン

//┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

$txt = fopen(”./text.txt”,’r’); //テキストファイルオープン(default:./text.txt)

while(!feof($txt)){

$line = fgets($txt,1000); //一行の読み込むバイト数(default:半角1000文字)

$line = trim($line);

if($line == ””){continue;} //空行無視処理

$data[] = $line;

}

$count = count($data) - 1;

$no = mt_rand(0,$count);

$out_txt = $data[$no];

print ”$out_txt”; //出力部

//┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

//┃フッダ表示部

//┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

print <<<_HTML_

</body>

</html>

_HTML_;

?>

ここまで---------------------------

◎質問者からの返答

すごく丁寧に教えていただいて、またそちらの環境でも試していただいてありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ