|
|
|
| Добрый вечер. подскажите пожалуйста, как сделать так, чтобы при записи в текстовый файл, стороки добавлялись в начале этого самого файла, а остальное сдвигали вниз.
Вот моя ф-ция записи в файл:
if ($text!="") {
$f_out = fopen( "msg.txt" , "a+");
fwrite($f_out,$text);
fclose($f_out);
}
|
Спасибо | |
|
|
|
|
|
|
|
|
для: Nemezis
(25.05.2009 в 19:52)
| | Спасибо. но я честно говоря немного недопонимаю как его связать с моей функцией ((
ЧТо мне добавить в этот код чтобы сообщение добавлялось в начало, а остальные строки сдвигались вниз:
$f_out = fopen( "msg.txt" , "a+");
$text = "Строка которую следует добавить в начало файла<br>";
fwrite($f_out,$text);
fclose($f_out);
|
Прошу прощения за свою тупость, просто только начинаю разбираться с ПХП )) Хэлп ми плиЗ)) | |
|
|
|
|
|
|
|
для: Rifmasta
(25.05.2009 в 20:00)
| | Напишите ж кто-нибудь!!! | |
|
|
|
|
|
|
|
для: Rifmasta
(25.05.2009 в 20:23)
| |
<?php
$text='Строка которую следует добавить в начало файла<br>';
if ($text!="")
{
$text_1=file_get_contents('msg.txt');
$fd=$text.$text_1;
$f_out = fopen("msg.txt","w");
fwrite($f_out, $fd);
fclose($f_out);
}
?>
|
| |
|
|
|
|
|
|
|
для: VITtek
(25.05.2009 в 22:39)
| | А почему br? ) | |
|
|
|
|
автор: ??? (25.05.2009 в 20:28) |
|
|
для: Rifmasta
(25.05.2009 в 20:00)
| | сдвинуть все существующие строки по файлу можно только перезаписав этот файл полностью.
Например сначала считав его весь в память (переменную) | |
|
|
|
|
|
|
|
для: ???
(25.05.2009 в 20:28)
| | сначала считав его весь в память (переменную)
Это подходит для файлов маленького размера.
Для больших файлов можно например использовать "промежуточный файл", в который пишите строку, а затем по одной строке пишите в него из старого файла. После чего удаляете старый и переименовываете новый. | |
|
|
|
|
|
|
|
для: ???
(25.05.2009 в 20:28)
| |
тут сами Textarea и button - submit
<?
if ($_POST['textarea']<>"") { // здесь если в текст арее, куда мы вводим текст, есть символы
$text='пробел'; //для того чтобы добавилась 1вая строчка без нее не добавится
$new=fopen('Text.txt', "a");//директория для записи
fputs($new, $text); //fputs аналог fwrite
fclose($new);
}
$f = file('Text.txt'); // читаем массив строк в документе
krsort($f); // сортируем в обратном порядке по ключу строки
if ($_POST['textarea']<>"") { // здесь если в текст арее, куда мы вводим текст, есть символы
$newtext="ТЕКСТ который добавляем"';
$file=file_get_contents('Text.txt'); //читаем еще раз файл другим способом
$file=preg_replace($newtext, $file); //выбираем тест который надо удалить
file_put_contents('Text.txt',$file); //перезаписывем
for($i=0; $i < count($f); $i++) //массив строк $f который был выше $i символы
{
$text=$f[$i]; //запоминаем старый текст из документа
}
$newtext="ТЕКСТ"; //еще разок наш текст
$new=fopen('TextNews.php', "a");//директория для записи
fwrite($new, $newtext);//запись
fclose($new);// и закрываем
}
}
?>
|
работает 100% может не совсем корректно сформирован код. | |
|
|
|
|
|
|
|
для: Dlive
(13.10.2012 в 13:43)
| | А проще разве нельзя, если речь идет о добавление в начало?
<?
file_put_contents('Text.txt',$add_str."\n".file_get_contents('Text.txt'));
|
| |
|
|
|
|
|
|
|
для: confirm
(13.10.2012 в 13:58)
| | эм ну незнаю я скомпилировал в браузере но этот вариант добавляет в начало и в конец 2 одинаковых строчки )
да и в моем коде одна лишнаяя переменная $newtext="Текст..." просто сейчас только делал код; изза нее ошибка может быть. а так 100% работает. там еще по возможности можно / n поставить для коректности записи. ) | |
|
|
|
|
|
|
|
для: Dlive
(13.10.2012 в 14:27)
| | Какой вариант две строчки? | |
|
|
|
|
|
|
|
для: confirm
(13.10.2012 в 14:30)
| |
file_put_contents('Text.txt',$add_str."\n".file_get_contents('Text.txt'));
|
| |
|
|
|
|
|
|
|
для: Dlive
(13.10.2012 в 14:32)
| | аа все извиняюсь )) забыл убрать
//$new=fopen('TextNews.php', "a");//директория для записи
//fwrite($new, $newtext);
//fclose($new);
|
все работает спасибо Confirm | |
|
|
|