воскресенье, 24 декабря 2017 г.

Как узнать номер определенной строки в файле и заменить/удалить её? PHP

Итак, что мы делаем.
У нас есть файл, в нем несколько строк, надо 

найти определенную строку (узнать ее номер)

 и удалить ее, либо заменить
<?php
// ищем строку
$str="подробнее"; 
$fopen=@file("file.txt");
foreach($fopen as $key=>$value)
{
  // $key узнает номер строки
  if(substr_count($value,$str))
  {
    print $key; // выводим номер строки
  }
}
?>
Узанали номер строки, теперь удалим ее
<?php
// наш файл
$fopen=@file("file.txt");
$what="вот эту строчку ищем";
foreach($fopen as $key=>$value)
{
  if(substr_count($value,$what))
  {
    // если нашел, удаляем
    array_splice($fopen, $key, 1);
  }
}
// переписал файл по новой
$f=fopen("file.txt", "w");
for($i=0;$i<count($fopen);$i++)
{
  fwrite($f,$fopen[$i]);
}
fclose($f);
?>
Теперь находим и меняем строку. В принципе код мало чем отличается
<?php
// искомая строка
$for_edit="подробнее";
// на эту меняем
$what="краткоrn";
$fopen=@file("21.txt");
foreach($fopen as $key=>$value)
{
  if(substr_count($value,$for_edit))
  {
    // если нашли
    array_splice($fopen, $key, 1, $what); // заменили
  }
  $f=fopen("21.txt", "w"); // переписали файл
  for($i=0;$i<count($fopen);$i++)
  {
    fwrite($f,$fopen[$i]);
  }
  fclose($f);
}
?>

Комментариев нет:

Отправить комментарий