x.x.x.x

| HOME | FrontPage | 記事編集 | RSS |

PHPランダムメッセージ   PHP::5

これもお約束。require()が期待通り動いたことにヤヤウケ。PHPの関数群は書き手の「こう動いたら便利だな」的な空想を概ね形にしてくれている点が素晴らしい。まずラッパ。

<?php @header('Content-Type: text/html; charset=UTF-8'); @header('Content-Language: ja'); ?>
<html>
<head><title>random message</title></head>
<body>
<?php require("random_message.php"); ?>
</body>
</html>

5行目でrandom_message.phpをrequireしています。
下はそのrandom_message.phpの本体。

<?php
$datafile = 'random_message.txt';
function take_msg($fname) {
    $lines = file($fname);
    $end_cnt = count($lines);
    if($end_cnt < 0) return;
    $i = mt_rand(0,$end_cnt-1);
    return($lines[$i]);
}
$msg = take_msg($datafile);
if(strlen($msg) < 1) {
    print "datafile not found";
} else {
    print rtrim($msg, "\t\r\n");
}
?>

random_message.txtを配列に読み込んで、ランダムに1行を抽出してprint。珍しいのは7行目のmt_rand()かな。マニュアルを読むと高速なrand()としか書かれておらず、じゃあrand()は何のためにあるのかもはや誰にもわからない。このへんが実にPHPらしい。闇雲に関数を作り散らかして放置するのがPHPの開発スタイル。ちなみにPHPのrand()は整数を返しますが、Perlのrand()は小数点以下を付けて返します。

http://blonde.fam.cx/script/php/rm.php
http://blonde.fam.cx/script/php/random_message.php
http://blonde.fam.cx/script/php/random_message.txt

BlogMode speed member / 2008.02.10 21:08

These pages are designed for NN7 & IE6.
BBSWiki ver.1.50 Final blogmode.
Copyleft (!C) 2005-2007 SUICIDE BLONDE JP.
All Lefts Reserved.

Valid XHTML 1.0 Strict Valid CSS!