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

Форум PHP

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

 

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

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

тема: редактирование строки...
 
 автор: ddimanich   (26.02.2007 в 13:37)   письмо автору
 
 

Добрый день.

есть: *.txt

содержание:
...
1020::Текст1::Текст2
1280::Текст1::Текст2
7946::Текст1::Текст2
...

:: - разделитель

Подскажите как отредактировать допустим запись 1280::Текст1::Текст2 на 0001::Тскет1::Тскет2

   
 
 автор: mesos   (26.02.2007 в 13:51)   письмо автору
 
   для: ddimanich   (26.02.2007 в 13:37)
 

Могу предложить такой вариант (если поиск записи по номеру):

<?php

$lines 
file("text.txt");
$file fopen("text.txt""w");
foreach(
$lines as $value)
 {
  list(
$id,$text1,$text2) = explode('::'rtrim($value));
  if(
$id=='1280'
   {
    
$id    '0001';
    
$text1 'Тскет1';
    
$text2 'Тскет2';
    
$value implode('::', array($id$text1$text2));
   }
  
fwrite($file"$value\r\n");
 }
fclose($file);

?>

   
 
 автор: ZuArt   (26.02.2007 в 14:23)   письмо автору
 
   для: mesos   (26.02.2007 в 13:51)
 

Я с файлами на уровне записи не работал, но рискну выдвинуть предположение - разве можно ОДНОВРЕМЕННО открывать файл на чтение и читать его построчно и открывать файл для записи и записывать в него "построчно"...??? Мне все-таки кажется, что или нужно новый "файл" писать на этапе пойиска в буфер, а потом уже перезаписывать файл текстом из буфера... или писать во временный файл и потом старый затирать, и новому присваивать его имя... но вообще такие весчи чреваты гемором, связанным с одновременным доступом.

   
 
 автор: mesos   (26.02.2007 в 14:33)   письмо автору
 
   для: ZuArt   (26.02.2007 в 14:23)
 

Никаких проблем не возникнет, т.к. функция file() читает строки файла в массив и не оставляет открытого дескриптора.
А уже затем из этого массива построчно происходит сравнение и запись в пустой файл, открытый fopen().
Собственно буфер здесь - это массив $lines.

   
Rambler's Top100
вверх

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