试试用flock();不过这个函数不是所有系统都能用。flock
(PHP 3>= 3.0.7, PHP 4 >= 4.0.0)flock -- Portable advisory file locking
Description
bool flock ( int fp, int operation [, int wouldblock])
PHP supports a portable way of locking complete files in an advisory way (which means all accessing programs have to use the same way of locking or it will not work). flock() operates on fp which must be an open file pointer. operation is one of the following values: To acquire a shared lock (reader), set operation to LOCK_SH (set to 1 prior to PHP 4.0.1). To acquire an exclusive lock (writer), set operation to LOCK_EX (set to 2 prior to PHP 4.0.1). To release a lock (shared or exclusive), set operation to LOCK_UN (set to 3 prior to PHP 4.0.1). If you don't want flock() to block while locking, add LOCK_NB (4 prior to PHP 4.0.1) to operation.
flock() allows you to perform a simple reader/writer model which can be used on virtually every platform (including most Unix derivatives and even Windows). The optional third argument is set to TRUE if the lock would block (EWOULDBLOCK errno condition) flock() returns TRUE on success and FALSE on error (e.g. when a lock could not be acquired). Note: Because flock() requires a file pointer, you may have to use a special lock file to protect access to a file that you intend to truncate by opening it in write mode (with a "w" or "w+" argument to fopen()).
Warning
flock() will not work on NFS and many other networked file systems. Check your operating system documentation for more details. On some operating systems flock() is implemented at the process level. When using a multithreaded server API like ISAPI you may not be able to rely on flock() to protect files against other PHP scripts running in parallel threads of the same server instance!
(PHP 3>= 3.0.7, PHP 4 >= 4.0.0)flock -- Portable advisory file locking
Description
bool flock ( int fp, int operation [, int wouldblock])
PHP supports a portable way of locking complete files in an advisory way (which means all accessing programs have to use the same way of locking or it will not work). flock() operates on fp which must be an open file pointer. operation is one of the following values: To acquire a shared lock (reader), set operation to LOCK_SH (set to 1 prior to PHP 4.0.1). To acquire an exclusive lock (writer), set operation to LOCK_EX (set to 2 prior to PHP 4.0.1). To release a lock (shared or exclusive), set operation to LOCK_UN (set to 3 prior to PHP 4.0.1). If you don't want flock() to block while locking, add LOCK_NB (4 prior to PHP 4.0.1) to operation.
flock() allows you to perform a simple reader/writer model which can be used on virtually every platform (including most Unix derivatives and even Windows). The optional third argument is set to TRUE if the lock would block (EWOULDBLOCK errno condition) flock() returns TRUE on success and FALSE on error (e.g. when a lock could not be acquired). Note: Because flock() requires a file pointer, you may have to use a special lock file to protect access to a file that you intend to truncate by opening it in write mode (with a "w" or "w+" argument to fopen()).
Warning
flock() will not work on NFS and many other networked file systems. Check your operating system documentation for more details. On some operating systems flock() is implemented at the process level. When using a multithreaded server API like ISAPI you may not be able to rely on flock() to protect files against other PHP scripts running in parallel threads of the same server instance!
解决方案 »
- php关于 global的问题
- 求教一个js问题,如何关闭当前页
- apache日志文件时间显示utc时区的问题...
- 求网页高手解答!
- 急急急!!!请高手帮我检查一下代码!!
- PHP中如何转义,大拿请帮忙!!!急急急!!!
- 帮忙看看,小问题。APACHE2.044和PHP4.31的配置。
- 请推荐几个关于php地热门网站,
- 用delete删除数据库的某行数据后,如何使id仍按1-n的顺序排?
- 字符串 替换
- 快来看看,这个主页空间不支持文件读写,怎么办? Warning: fopen("./data/user.dat", "w") - Permission denied in /usr/vhome/e/k/i/XX
- 為什么會有亂碼呢(爲,爲...)?在線等候,謝謝!
$fp=@fopen($file_name,"r");
flock($fp,LOCK_SH);
$file_data=fread($fp,filesize($file_name));
fclose($fp);写文件:
$fp=@fopen($file_name,"w");
flock($filenum,LOCK_EX);
$file_data=fwrite($p,$data);
fclose($fp);
$fp是一个大开的文件指针
操作完成后关闭文件就可以了