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

Форум PHP

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

 

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

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

тема: Замена в текстовом файле
 
 автор: Разведчик   (11.08.2006 в 22:42)   письмо автору
 
 

Условие:
1.есть текстовый файл
2. есть файл просто из слов, каждое слово на своей строчке
3. надо заменить в текстовом файле (1) все слова, соответствующие введенному руками шаблону (если такие встречаются в файле (1)), последовательно на слова из файла (2) и сделать количество текстовых файлов равное количеству слов в файле (2).
т.е. если в файле (1) есть слово "текст", то его везде надо заменить на первое слово из файла (2), и так далее...

   
 
 автор: ec_stasis   (12.08.2006 в 00:47)   письмо автору
 
   для: Разведчик   (11.08.2006 в 22:42)
 

Если не секрет, а зачем?

   
 
 автор: Axxil   (12.08.2006 в 00:47)   письмо автору
 
   для: Разведчик   (11.08.2006 в 22:42)
 

Если я правильно понял, то так примерно:

<?
$filename1 
'file1.txt';
$content file_get_contents($filename1);
$pattern 'текст';
if(
strpos($str,$pattern) !==false ){
  
$filename2 '$file2.txt';
  
$words file($filename2);
  foreach(
$words as $key=>$word){
    
$str str_replace($pattern,$word,$content);
    
$handle fopen($key.'.txt','w+');
    
fwrite($handle,$str);
    
fclose($handle);
  }
}
?>

   
 
 автор: Roo$   (12.08.2006 в 22:42)   письмо автору
 
   для: Axxil   (12.08.2006 в 00:47)
 

У меня такая стуация. Есть файл. В нем 4 строки. Как можно перезаписать файл нетрогая 2 строчку? Дапустим я хочу отредактировать сообщение которое записано в файле следующим образом:

name
time date
messages

При редактировании мне не нужно трогать 2 строчку, только 1 и 3.

   
 
 автор: Axxil   (13.08.2006 в 17:39)   письмо автору
 
   для: Roo$   (12.08.2006 в 22:42)
 

Нужно файл стащить в массив

$arr = file('filename.txt');

И работать с массивом

$arr[0] = 'Перезаписали первую строчку\n';
// Вторую не трогаем
$arr[2] = 'Перезаписали третью строчку\n';
$handle = fopen('filename.txt',w+);
foreach($arr as $item){
  fwrite($handle,$item);
}
fclose($handle);

   
 
 автор: Roo$   (13.08.2006 в 21:03)   письмо автору
 
   для: Axxil   (13.08.2006 в 17:39)
 

Я скопировал весь твой пример. Создал в папке этот файл. Записал туда 3 строчки. И все... Запускаю эту прогу. Захожу снова в этот файл, а там попрежнему эти 3 строчки. Ничего не перезаписалось. Может еще что то надо указать?

   
 
 автор: Roo$   (14.08.2006 в 22:06)   письмо автору
 
   для: Roo$   (13.08.2006 в 21:03)
 

Помогите пожалуйсто.

   
 
 автор: cheops   (15.08.2006 в 12:12)   письмо автору
 
   для: Roo$   (14.08.2006 в 22:06)
 

Следует чуть-чуть поправить скрипт
<?php
  $arr 
file('get.txt'); 
  
$arr[0] = "Перезаписали первую строчку\n"
  
// Вторую не трогаем 
  
$arr[2] = "Перезаписали третью строчку\n"
  
$handle fopen('get.txt','w'); 
  if(
$handle)
  {
    
fwrite($handle,implode("",$arr)); 
    
fclose($handle);
  }
?>

   
 
 автор: Roo$   (15.08.2006 в 23:19)   письмо автору
 
   для: cheops   (15.08.2006 в 12:12)
 

Большое спасибо. Все работает.

   
Rambler's Top100
вверх

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