• 相关软件
    >实例学习PHP之投票程序篇(二) 创建者:webmaster 更新时间:2005-07-02 00:24

    最后我们来看看PHP的档案处理,PHP中用于档案处理的函数有大概几十个,在我们这一节里,使用了其中的五个函数fopen(); fclose(); flock();fexists();fwrite(); 其中我想重点说一下flock();其它的大家就去自己查手册吧。

       为什么要重点说flock()?因为这是一个对于网络编程非常重要的功能,我举个例子,两个人同时投票,而且选的都是选项A,假设他们同时打开数据文件,这时A的选票是2,然后两个进程都在原有的基础上加1,接着一个写入了数据,另外一个也跟着写完了写入,大家想这时会出现什么情况?A的选票是多少?正确结果应该是4,但实际上却会是3。为什么会这样?这就是因为网络的多人环境的特点啦,所以我们在投票前一定要先用flock()函数把文件锁住,投完后再打开文件让其它的进程进行操作,这样才能防止出现上面的那类错误。下面是flock函数的用法说明。

       flock 锁住档案。

       语法: boolean flock(int fp, int operation);

       传回值: 布林值

       函式种类: 档案存取

       内容说明 本函式用来锁住档案,使别的行程无法存取。传入的参数 fp 为档案的指标。参数 operation 的值为下列的数字之一:

       1 、表示设定锁住档案可以允许别的行程读取;

       2 、表示只有该行程可以写入档案;

       3 、表示读写均锁住;

       4 、不锁住区块 (block)。

       而本函式无论在 UNIX 或是 Windows 系列中的锁住效果都相近。执行成功则传回 true 值,否则传回 false 值。
    相关文章
    本页查看次数: