当PHP接收到许多读写文件请求时会发生什么?这些请求会排队吗?还是只有一个请求被接受,其余请求将被丢弃?
我计划使用文本格式的点击计数器。
file_put_contents(,,FILE_APPEND|LOCK_EX);
不用担心数据完整性。
如果需要更复杂的操作,您可以使用 flock(用于简单的读写问题)。
对于您的 PHP 脚本计数器,我建议您像这样做:
//> Register this impression
file_put_contents( $file, "\n", FILE_APPEND|LOCK_EX );
//> Read the total number of impression
echo count(file($file));
array file()
,您可以使用以下方法使系统更加轻量级://> Register this impression
file_put_contents( $file, '1', FILE_APPEND|LOCK_EX );
//> Read the total number of impression
echo filesize($file);
在读写文件之前,您可以使用flock()获取文件锁。如果其他线程持有文件锁,则flock()
将等待直到其他锁被释放。
flock()
在操作系统级别上运行,应该是线程安全的。也许有更好的操作系统知识的人可以确认一下? - BenMorel