ОсновноеRadiotalkПользовательское
Программирование
6   •   Посмотреть все темы

Поиск строки в файле по тексту

 

7094
Dim @Render
Приветствую, надеюсь на помощь.
Имеется файл list.txt, его содержание примерно такое:
/var/www/dir/name1.mp3
/var/www/dir1/name2.mp3
/var/www/dir1/name3.mp3
/var/www/dir3/name4.mp3
/var/www/dir0/name5.mp3

Пытаюсь организовать поиск по тексту строки для того чтобы в дальнейшем, вставить ниже искомой строки, собственную.
Поиск в гуглах по запросам работа со строками, поиск и вывод строк, так и не дали для меня результатов... Сложновато чтоли...

То, что пытался составить своими силами.
Допустим, как-то так:
$poisk = "name3.mp3"; //текст по которому ищем строку
$mystr = "/var/www/other/file.mp3"; //строка которую нужно будет добавить после найденной
##$zamena = ".......";

// открывает и читаем файл
$file_name='list.txt';
$r=fopen($file_name,'r');
$text=fread($r,filesize($file_name));
fclose($r);

// далее нужно как-то найти по тексту из $poisk строку, присвоить этой строке переменную допустим $str1
// и ниже найденной строки добавить собственную строку

... тут нужно как-то найти тут самую строку по тексту и присвоить ей переменную, не знаю как.

// добавление собственной строки (простейшее что пришло в голову)
$stroka = $str1."\n".$mystr;
$text=str_replace($str1, $stroka);

// ну и далее перезаписть $text обратно в файл

...

20090
Dimitry @Dimitry
много способов есть можно так
$a=file("list.txt");
for($i=0;$i<count($a);$i++) if(substr_count($a[$i],$poisk)) {$a[$i].=$mystr; break;}
file_put_contents("list.txt",implode("",$a));

делаешь аналог майрадио?)

7094
Dim @Render
Dimitry, Благодарю!)
делаешь аналог майрадио?)

Нее. Кое что другое

7
Gebbels @Gebbels
тут foreach красивее чем for будет смотреться ))