2013年4月24日 星期三

PHP 填空遊戲

在臉書朋友的訊息上看到 "發燒網" 舉辦的抽獎活動 ,想說沒事參加一下好了,

反正已經習慣沒有偏財運的自己 囧rz....

進去活動網頁之後看到以下這種,我把它歸類成填空游戲好了。

只要在以下輸入框填入你想說的話 就可以參加抽獎.....

示意圖:
            誠彼

只要按下"送出" 就會在留言底下看到自己的留言 "誠彼娘之不悅" 

 好吧這個小遊戲觸動了我的好奇心。廢話少說,以下是PHP寫的範例程式

獻給有需要用的的人。


<?php
$NewStr = "";
$str = 'A|C|E|F|G|'; //設定填空規則這邊以 "|" 當做是空格
$restr = '<input type="text" name="val[]" size="5">'; //空格要更換成 input 標籤
//用正規表達式 把$str字串裡頭的 | 取代成 $restr
$FillStr = preg_replace('/([|])/', $restr, $str);
if (!empty($_POST["Flag"]) != "" && $_POST["Flag"] == "P") {
    //echo count($_POST["val"]);
    if (preg_match_all('/[|]/', $str, $matches)) {//如果字串存在 |
        $pattern = array_map(create_function('$val', 'return "/[{$val}]/";'), $matches[0]);
        //再把$str 字串裡頭的 | 取代 $array 每次取代一次
        $NewStr = preg_replace($pattern, $_POST["val"], $str, 1);
    }
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form name="input" action="pregArrayDemo.php" method="post">
            <input type="hidden" name="Flag" value="P" />
            填空遊戲:<?php echo $FillStr; ?>
            <br/>
            <?php
            if ($NewStr != "") {
                echo "答案:" . $NewStr;
            }
            ?>
            <input type="submit" name="submit" value="送出" />
        </form>
    </body>
</html>

沒有留言: