我有一个 php 脚本,用于记录网站的广告(横幅)并将它们存储到 .dat 文件中。在此文件中保存了 ID、URL 和其他重要信息。我遇到的问题是页面上在任何给定时间都有 4 个广告,因此当 php 脚本在打开时尝试写入时,.dat 文件通常会损坏。
我检查并尝试了这个解决方案,但它对我没有帮助:
PHP 同时文件访问/flock() 问题
我现在使用的功能是这样的:
function writeads(){
global $bannerAdsPath, $ads, $bannerAds;
$data = fopen($bannerAdsPath, 'w') or die();
flock($data, 2) or die();
fputs($data, @join("\n", $ads)."\n");
while (list ($key, $val) = each ($bannerAds)) {
if (($key != '') && ($val != '')) {
fputs($data, $key.'='.$val."\n");
}
}
flock($data, 3);
fclose($data);
reset($bannerAds);
}
任何帮助将不胜感激,因为我已经为此苦恼了一段时间。附带一点信息,客户不希望重写他们的代码以使用数据库而不是文件,因此该选项已失效。
谢谢!