Я не понимаю как с файлами грамотно поработать, чтобы результат получить. Про твой пример я помню - не забыл))
Этот код очистит содержимое файла. PHP: $f= fopen("file.log",'w');//открываем/создаём нужный файл (вместо "file.log" впишите ваш файл) 'w' - означает //создание либо замену всего имеющегося на своё flock($f,2); //запрещаем доступ к файлу, пока он не будет закрыт fwrite($f,""); // заменяем в файле текст на тот кто приведён после $f, в нашем случае ничего fclose($f);//закрываем наш файл Как ты думаешь, где я его взял? --- Добавлено --- После этого записываешь в файл как обычно...
Я пытаюсь понять, понял ли ты правильно поставленную задачу. Эти конструкции я и так в гугле находил для работы с файлами. Но речь то не о том, как очистить файл и заменить содержимое вовсе, а как заменить конкретное содержимое, например то, что я описал выше... --- Добавлено --- Я пытался цикл применить, но он мне почти все элементы в файле удаляет... Пытался сделать уникальный массив с помощью array_diff. Массив получаю, но в файл он не записывается. Вернее записывается, но удаляет не то, что должен! Жесть((( PHP: $massInput = file('one.txt', FILE_IGNORE_NEW_LINES); $massUsed = @file('two.txt', FILE_IGNORE_NEW_LINES); print 'Исходный массив<pre>'; print_r($massInput); print '</pre>'; // схождение проверяем $result = array_intersect($massInput, $massUsed); print 'Найденные элементы в файле<pre>'; print_r($result); print '</pre>'; if(!empty($result)){ //расхождение $rashod = array_diff($massInput, $massUsed); for($i=0; $i<sizeof($massInput); $i++){ $f= fopen("users.txt",'w'); flock($f,2); fwrite($f, $rashod[$i]); fclose($f); } }else{}
@espltd, удаляешь всё и записываешь только то что там должно быть. PHP: $f= fopen("users.txt",'w'); // открываешь flock($f,2); foreach( $rashod as $value ){ fwrite($f, $value); // пишешь } fclose($f); //закрываешь --- Добавлено --- Это вместо for
PHP: if(!empty($result)){ $rashod = array_diff($massInput, $massUsed); $f= fopen("users.txt",'w'); foreach( $rashod as $item ){ fwrite($f, $item."\r\n"); } fclose($f); }else{} --- Добавлено --- я сперва сделал не правильно, так как во внутрь цикла поместил flock($f,2); Он постоянно блокирован был, потому как я fclose($f) тоже запихал во внутрь цикла. Вот скрипт и заблудился)