Как сделать запись в тектосвый файл чтобы запись начиналась с 1 строки и при этом содержимое не удалялось? И как сделать такое: если в файле есть 10 строчек текста, нужно сделать так чтобы при записи в начале еще одной строки удалялась последняя. Тоесть был файл: Записываем еще одну строку и надо чтобы стало:
чтобы получить ответ объясни что ты собрался делать?(открыть файл в режиме дозаписи "a" второй аргумент у функции fopen)
моя реализация... PHP: <?php function MyAddString($filename,$stringOrArrayOfString) { $fileArray = file($filename); $countOld = count($fileArray); if(is_array($stringOrArrayOfString)) foreach($stringOrArrayOfString as $string) $countNew = array_unshift($fileArray,$string . "\n"); else $countNew = array_unshift($fileArray,$stringOrArrayOfString. "\n"); for($i=0;$i<$countNew-$countOld;$i++) array_pop($fileArray); file_put_contents($filename,implode("",$fileArray)); } MyAddString('test1.txt','новая первая строка'); PS: осторожно, переносы строк в стиле linux...
это ему никак не поможет, если поставить каретку в начало файла, то будешь писать поверх старых данных, а они нужны
Если я правильно понял код, то тут количество строк берется из уже готового файла? Т.е. если при чтении у файла было 10 строк, то запись будет на 10 строк. Если 15, то 15...? $countOld = 10; Чтобы нужное количество строк независимо от файла. Надеюсь правильно разобрал...
Ему по ходу стек нужен PHP: <?php $stack = array("", "", "", "", "", "", "", "", "" ,""); // Стек на 10 эл-ов //теперь добавим новый элемент $new = "test"; // то что будем добавлять //для начала удалим последний $x = array_pop($stack); // $x - удалённый элемент из массива // теперь запишем в файл $f = fopen("fifo.txt", "w+b"); // перезаписываем файл, если нет - создаём flock($f, LOCK_EX); fwrite($f, $new."\r\n".implode("\r\n", $stack)); flock($f, LOCK_UN); fclose($f); // посмотрим что у нас лежит $stack = file("fifo.txt", FILE_IGNORE_NEW_LINES); echo "<pre>"; print_r($stack); Я думаю что автор пытается сделать наверное что-то вроде чата. Целесообразно будет реализовать это в виде функции: PHP: <?php function fifoAdd($filename, $val) { $fifo = file($filename, FILE_IGNORE_NEW_LINES); array_pop($fifo); $f = fopen($filename, "w+b"); flock($f, LOCK_EX); fwrite($f, $val."\r\n".implode("\r\n", $fifo)); flock($f, LOCK_UN); fclose($f); }
necroleptick нет не чата) phpdreamer - большое спасибо) именно то что мне нужно было! Смотрите: /thread248991.html