привет, я хочу избежать дублирования строк в файле

привет, я хочу избежать дублирования строк в файле

file_put_contents('ips.txt', $ip . PHP_EOL, FILE_APPEND | LOCK_EX);

я хочу поставить 1 IP только один раз … как я могу это сделать?
(я хочу сделать это с помощью file_put … fwrite не работает на серверах php версии правильно ..)

код

file_put_contents('ips.txt', $ip . PHP_EOL, FILE_APPEND | LOCK_EX);

этот код fwrite не работает на моей версии PHP …

$file = fopen("ips.txt","w");
echo fwrite($file,$ip);
fclose($file);

Спасибо

0

Решение

Во-первых, вам нужно получить все строки вашего файла:

$lines = file('ips.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$lines массив, содержащий все строки вашего файла FILE_IGNORE_NEW_LINES а также FILE_SKIP_EMPTY_LINES флаги используются для пропуска пустых строк и игнорирования окончаний строк.

После этого вам нужно узнать, есть ли ваш адрес в этом массиве, и вставить свой IP, если его нет:

if (!in_array($ip, $lines)) {
file_put_contents('ips.txt', $ip . PHP_EOL, FILE_APPEND | LOCK_EX);
}

PHP файл () документация

PHP in_array () документация

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]