[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавить в конец TXT файла две строки
Albert
Подскажите пожалуйста, нужно открыть текстовый файл, добавить в него 2 строки, в самый конец, и сохранить файл.



Спустя 24 минуты, 15 секунд (1.11.2008 - 13:20) str_replace написал(а):
$fl = fopen ('file.txt', 'a');
fWrite ($fl, 'string 1');
fWrite ($fl, 'string 2');
fClose ($fl);

Спустя 38 минут, 40 секунд (1.11.2008 - 13:59) Xakep написал(а):
открывай файл в режиме a+

$file = fopen("путь до файла","a+");

Спустя 11 минут, 8 секунд (1.11.2008 - 14:10) Albert написал(а):
спасибо!

Спустя 1 месяц, 10 дней, 10 часов, 10 минут, 32 секунды (12.12.2008 - 00:20) inoplanetanin написал(а):
У меня немного другая проблема. Не могу понять почему сохраняется массив не правильно.
Есть "reiting.txt" файл с содержанием:
arr[]=127.0.0.1&arr[]=1
arr[]=127.0.0.2&arr[]=2&arr[]=3&arr[]=4
arr[]=127.0.0.3&arr[]=3
arr[]=127.0.0.4&arr[]=4
arr[]=127.0.0.5&arr[]=5

после выполнения функции save('127.0.0.3',6,5); в "reiting.txt" должно стать так:

arr[]=127.0.0.1&arr[]=1
arr[]=127.0.0.2&arr[]=2&arr[]=3&arr[]=4
arr[]=127.0.0.3&arr[]=3&arr[]=0&arr[]=0&arr[]=0&arr[]=0&arr[]=5
arr[]=127.0.0.4&arr[]=4
arr[]=127.0.0.5&arr[]=5

а на деле получается так:
arr[]=127.0.0.1&arr[]=1
arr[]=127.0.0.2&arr[]=2&arr[]=3&arr[]=4
arr[]=127.0.0.3&arr[]=3&arr[]=0&arr[]=0&arr[]=0&arr[]=0&arr[]=5arr[]=127.0.0.4&arr[]=4
arr[]=127.0.0.5&arr[]=5

исходник:

<?php
function save($d1,$d2,$d3) {
$fl = "reiting.txt";
$file = file($fl);
$count = count($file);
$ff=false;
for($i=0;$i<$count;$i++) {
unset($arr);
parse_str($file[$i]);
for($ii=0;$ii<$d2;$ii++) {
if ( $arr[$ii]=='' ) $arr[$ii]='0';
}
if ($arr[0]==$d1){
$ff=true;
$arr[$d2]=$d3;
for($i2=0;$i2<count($arr)-1;$i2++) {
$arr[$i2]=trim($arr[$i2]);
}
$file[$i]= 'arr[]='.implode('&arr[]=',$arr);
}
}

if ($ff==false) {
$s='arr[]='.$d1;
for($ii=0;$ii<$d2;$ii++) {
$s=$s .'&arr[]=0';
}
$dff=$s .'&arr[]=' .$d3;
$file[count($file)]=$dff;
}
$fl = "reiting_ajax.txt";
$fp=fopen($fl,"w");
fputs($fp,implode('',$file));
fwrite($fp,"\r\n");
fclose($fp);
}

?>
Бьюсь уже который день ни могу исправить. fputs не хочу заменять на fwrite т.к цикл думаю будет медленней работать.
Кто что может посоветовать?

Спустя 1 час, 21 минута, 9 секунд (12.12.2008 - 01:42) kirik написал(а):
inoplanetanin, если внимательно почитать ТУТ, то можно увидеть
Цитата
fputs — Псевдоним функции fwrite()


а пишется на одной строке, потому что у вас последнего перехода строки в файле нет изначально. тоесть скриптина дописывает просто в конец файла то, что вы передали.

Спустя 20 часов, 46 минут, 8 секунд (12.12.2008 - 22:28) inoplanetanin написал(а):
Цитата (kirik @ 11.12.2008 - 22:42)
inoplanetanin, если внимательно почитать ТУТ, то можно увидеть
Цитата
fputs — Псевдоним функции fwrite()


а пишется на одной строке, потому что у вас последнего перехода строки в файле нет изначально. тоесть скриптина дописывает просто в конец файла то, что вы передали.

Скрипт записывает массив $file в массив.
Если выводить на экран по отдельности элементы массива $file, то все правильно, а если записывать в файл, то элемент [i] с изменённым значением записывается слитно со следующим [i+1].

Спустя 1 минута, 27 секунд (12.12.2008 - 22:29) inoplanetanin написал(а):
Опечатался "Скрипт записывает массив $file в файл."

Спустя 2 часа, 8 минут, 16 секунд (13.12.2008 - 00:37) inoplanetanin написал(а):
Исправил изменив процедуру записи.
на
for($i=0;$i<count($file);$i++) {
$s=$file[$i];
$mas = str_split($s);
$ss=ord($mas[count($mas)-2]) .ord($mas[count($mas)-1]) ;
if ($ss!='1310') {
fwrite($fp,$file[$i]);
fwrite($fp,"\r\n");
}
else { fwrite($fp,$file[$i]); }
}
Но хочется чтобы циклов было иеньше что надо сделать?

Спустя 1 день, 17 часов, 31 минута, 14 секунд (14.12.2008 - 18:09) Sylex написал(а):
blink.gif цикл 1 всего

Спустя 32 минуты, 9 секунд (14.12.2008 - 18:41) Adil написал(а):
Цитата (Sylex @ 14.12.2008 - 19:09)
цикл 1 всего


Ну меньше 1 цикла- это 0 циклов...) Как говорится нет циклов-нет проблем biggrin.gif

Спустя 3 часа, 26 минут, 42 секунды (14.12.2008 - 22:08) kirik написал(а):
Nezabivaemiy =))))))))

inoplanetanin, ты имеешь ввиду вызовов функции frwite(); ?

как-то так попробуй
Код
$c_f = count($file);
for($i = 0; $i < $c_f; $i++) {
$mas = str_split($file[$i]);
$c = count($mas);
fwrite($fp, (ord($mas[$c-2]).ord($mas[$c-1]) == 1310) ? $file[$i] : $file[$i]."\r\n");
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.