привет, я хочу избежать дублирования строк в файле
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);
Спасибо
Во-первых, вам нужно получить все строки вашего файла:
$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);
}
Других решений пока нет …