Установить ограничения для добавления контента в текстовом файле с помощью PHP
Мне нужно создать список последних зарегистрированных пользователей на моем сайте, но я не хочу использовать MySQL. я сделал поиск в stackru и 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 ответ
Решение
Может быть, вы можете сделать это?
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);
}
}