PHP 简单留言板

释放双眼,带上耳机,听听看~!

/*

 * 文件的锁定机制

 * flock()轻便的咨询文件锁定

 * LOCK_SH取得共享锁定(读取的程序)。 

 * LOCK_EX 取得独占锁定(写入的程序。 

 * LOCK_UN 释放锁定(无论共享或独占)。 

 * 如果不希望 flock() 在锁定时堵塞,则是 LOCK_NB(Windows 上还不支持)。 

 *  

 */

 /*

  * 留言板

  */

    $filename = “message.txt”;

    if(isset($_POST[‘dosubmit’])){

        //字段的分隔||  行的分隔[n]

        $mess = “{$_POST[‘username’]}||”.time().”||{$_POST[‘title’]}||{$_POST[‘content’]}[n]”;

        writemessage($filename, $mess);

    }

 

    if(file_exists($filename)){

        readmessage($filename);

    }

    //读信息

    function readmessage($filename){

          //      $mess = file_get_contents($filename);

                $mess = “”;

                $fp = fopen($filename, “r”);

                flock($fp, LOCK_SH+LOCK_NB);//读锁定

                while(!feof($fp)){

                    $mess .=fread($fp, 1024);

                }

                flock($fp, LOCK_UN+LOCK_NB);//释放锁

                $mess = rtrim($mess,”[n]”);

                $arrmess = explode(“[n]”, $mess);

                foreach($arrmess as $m){

                    list($username,$daytime,$title,$content) = explode(“||”, $m);

                    echo “<b>{$username}</b>,”.date(‘Y-m-d H:i:s’,$daytime).”,<i>{$title}</i><br/><u>{$content}</u><br/><br/><br/>”;

                }

                fclose($fp);

    }

    //写信息

    function writemessage($filename,$mess){

        $fp = fopen($filename, “a”);

       //锁定文件

        if(flock($fp, LOCK_EX+LOCK_NB)){

            fwrite($fp, $mess);

            flock($fp,LOCK_UN+LOCK_NB);//释放文件

        }else{

            echo ‘写入锁定失败!’;

        }

        fclose($fp);

    }

?>

<form action=”index.php” method=”post”>

用户名:<input type=”text” name=”username” value=””/><br/>

标题:<input type=”text” name=”title” value=””/><br/>

内容:<textarea name=”content” cols=”40″ rows=”4″></textarea><br/>

<input type=”submit” name=”dosubmit” value=”留言”/>

</form>

【转自慕课】https://www.imooc.com

PHP

Apache整合PHP

2022-3-2 0:55:12

PHP

PHP二维数组去重

2022-3-2 23:22:43

搜索