Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Замена строки в массиве.
 
 автор: Footer   (17.03.2007 в 15:17)   письмо автору
 
 

Как осуществить замену строки в массиве. Есть файл, в котором информация хранится к строчках. То есть содержимое файла имеет вид:

1 какая-то длинная строка
2 ещё длинная строка
3 ещё длинная строка
4 ненужная строка

Мне нужно осуществить дозапись в файл, но так, чтобы дозапись наложилась на ненужную строку . То есть, нужно, чтобы при дозаписи, в файле строка
"4 ненужная строка" удалилась а на её место записалась новая строка. В итоге нужно, чтобы после дозаписи структура файла имела вид:

1 какая-то длинная строка
2 ещё длинная строка
3 ещё длинная строка
4 новая строка

Тут наверное, лучше через массив сделать? Но как?

   
 
 автор: bronenos   (17.03.2007 в 15:30)   письмо автору
 
   для: Footer   (17.03.2007 в 15:17)
 

$file[3] = 'Новая строка';

   
 
 автор: Unkind   (17.03.2007 в 15:33)   письмо автору
 
   для: Footer   (17.03.2007 в 15:17)
 


<?php
//Строка
$line 4;
//Новая строка
$string "Новая строка";
$file file('file.txt');
$file[$line 1] = $string.chr(10);

$fh fopen('file.txt''w');
fwrite(implode(""$file));
fclose($fh);
?>

   
 
 автор: Footer   (17.03.2007 в 17:24)   письмо автору
 
   для: Unkind   (17.03.2007 в 15:33)
 

Нет, дело в том, что у меня индексный файл. И строк в нём больше, чем 4. Мне нужно, чтобы просто при дозаписи всегда последняя строчка затиралась, то есть, чтобы запись начиналась в эту строчку.
То есть, например, файл до дозаписи был (строк в файле переменная величина):
1 Длинная строка
2 Длинная строка
3 Длинная строка
4 Длинная строка
5 Длинная строка
6 Длинная строка
7 ненужная строка

А скрипт дописывает в этот файл строку "7 новая строка"

А после дозаписи, файл должен иметь вид:
1 Длинная строка
2 Длинная строка
3 Длинная строка
4 Длинная строка
5 Длинная строка
6 Длинная строка
7 новая строка

Как такое осуществить? Хелп!

   
 
 автор: bronenos   (17.03.2007 в 17:30)   письмо автору
 
   для: Footer   (17.03.2007 в 17:24)
 

<?
$newstr 
'новая строка';
$file[count($file)-1] = $newstr "\n";
?>

   
 
 автор: Trianon   (17.03.2007 в 19:56)   письмо автору
 
   для: Footer   (17.03.2007 в 17:24)
 

А может быть проще э.... не писать эту самую ненужную строчку? Уж коль скоро она всё равно ненужная? А?

   
 
 автор: Footer   (18.03.2007 в 09:15)   письмо автору
 
   для: Trianon   (17.03.2007 в 19:56)
 

Нет, её нужно писать.

   
 
 автор: Footer   (18.03.2007 в 09:31)   письмо автору
 
   для: Footer   (18.03.2007 в 09:15)
 

Вот запустил скрипт, в который вставил предыдущие части кода, и выдаёт ошибки:
Wrong parameter count for fwrite()
fclose(): supplied argument is not a valid stream resource

Может, вы поможите мне, и приведёте полностью код, который осуществляет задуманные действия. Плиз!

   
 
 автор: Footer   (18.03.2007 в 09:56)   письмо автору
 
   для: Footer   (18.03.2007 в 09:31)
 

Спасибо всем, кто помогал. Я уже сам всё сделал. Всё ок.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования