2013-06-22 2 views
0

Мне нужно создать список последних зарегистрированных участников на моем веб-сайте, но я не хочу, чтобы пользователь MySQL. я сделал некоторый поиск в StackOverflow и Google и написал этот код:Установить лимиты для добавления контента в текстовый файл с помощью PHP

////////////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); 
} 
} 

Проблема в том, что я не могу установить предел! как я могу отредактировать этот код, чтобы установить лимит, чтобы добавить только пользователей в текстовый файл?

+0

, что и хотят делать, когда предел достигнет 20 – DevZer0

+0

после 20 я хочу, чтобы удалить первую строку текстового файла и добавить последний элемент в последней строке! – Alireza

+0

ОК, в первую очередь, только твоя 1 линия. во-вторых, ваш 'preg_match' работает, потому что я не вижу, чтобы ваше regexp имело' '/../" ' – DevZer0

ответ

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); 
} 
} 
+0

спасибо, мой друг, я получил некоторую идею из вашего ответа. – Alireza

+0

Нет проблем. Рад, что я могу вам помочь. –