使用PHP设置在文本文件中添加内容的限制

时间:2013-06-22 09:14:13

标签: php fopen fclose

我需要在我的网站上创建最后记录的成员列表,但我不想使用MySQL。我在 stackoverflow Google 中进行了一些搜索并编写了此代码:

////////////CHECK LIMIT
$storage = "engine/data/write.txt";
$readz = file_get_contents($storage);
$listz = explode('|||',$readz);
$counter = count( $listz );
if($counter > "3"){
  $stop = "1";
}else{
  $stop = "0";
}

if($stop == "0"){
///REMOVE MEMBER IF AVAILABLE
if ( preg_match("<!-- UserID: {$member_id} -->", $readz)){
$content = file_get_contents($storage);
$content = str_replace("<!-- UserID: {$member_id} -->".$user."|||", '', $content);
file_put_contents($storage, $content);
}

//ADD MEMBER AGAIN
if ( !preg_match("<!-- UserID: {$member_id} -->", $readz)){
$beonline_file = fopen($storage, "a+");
fwrite($beonline_file, "<!-- UserID: {$member_id} -->".$user."|||");
fclose($beonline_file);
}
}

问题是我无法设置限制!如何编辑此代码以设置限制以仅在文本文件中添加 20 用户?

1 个答案:

答案 0 :(得分:2)

也许你可以这样做?

if ( !preg_match("<!-- UserID: {$member_id} -->", $readz)){
 $nlistz = explode('|||',$readz);
 if(count( $nlistz ) == 20){
     array_shift($nlistz);
     $newlistz = implode("|||",$nlistz);
     $beonline_file = fopen($storage, "w+");
     fwrite($beonline_file, $newlistz."|||<!-- UserID: {$member_id} -->".$user."|||");
     fclose($beonline_file);
 }else{
     $beonline_file = fopen($storage, "a+");
     fwrite($beonline_file, "<!-- UserID: {$member_id} -->".$user."|||");
     fclose($beonline_file);
 }
}