Функция замены строки в файле

Печать RSS
70

K
Автор
Транклюкаторщик
0
10, как то странно %)
все функции открытия файлов использовал(и file, и fopen, и file_get_contents), а самое интересное что одного и того же файла %)...нерационально
Изменил: KOZZ (26.07.2010 / 15:27)

Персональный статус
0
11 ну они все последовательно будут работать а неодновременно,
file будем строки считать, знаеш другой способ это сделать говори
fopen открываем и пишим в файл уже с изменненой строкой
file_get_contents можно вынести в переменную $bufer, но зачем. лишняя строка в коде
думаю нагрузка не будет такой уж сильной главное чтоб работало и делало то что нужно.

Оранжевые штаны
0
Чем тебя функция из #2 не устраивает?

Пацак
0
<?php
function replace_line($what, $to, $current_file) {
	
	$file = file($current_file);
	$file = array_map('trim', $file);
	
	if ( $key = array_search($what, $file) ) {
		
		$file[$key] = $to;
		file_put_contents($current_file, implode("\n", $file));
		
		return true;
		
	}
	return false; 

}
?>
K
Автор
Транклюкаторщик
0
file будем строки считать, знаеш другой способ это сделать говори
ну это делается довольно просто:
<?$f1 = file_get_contents($file); 
$str_num = explode("\n",$f1);
$str_kol = count($str_num);?>
Изменил: KOZZ (26.07.2010 / 17:48)
K
Автор
Транклюкаторщик
0
13, я смотрю на разные варианты, смотрю как реализуют эту задачу другие люди.

2000 лет д.н.э.
0
$txt = file('text.txt');
$txt[$line] = str_replace($old, $new, $txt[$line]);
и хорош
K
Автор
Транклюкаторщик
0
в общем остановился на своем варианте:
<?
function replace($from,$to,$str,$file) {
# $from - заменяемый текст
# $to - текст на который заменяем
# $str - строка в которой производим замену ('all - все строки')
# $file - файл в котором производим замену
if(!file_exists($file)){die("Файл '$file' не существует!");}

$f1 = htmlspecialchars(file_get_contents($file));
if($str!=='all'){
$str = $str-1;
$f_str = explode("\n",$f1);
$f2 = str_replace($from,$to,$f_str[$str]);
$f3 = str_replace($f_str[$str],$f2,$f1);
$result = $f3;
}else{
$f1 = htmlspecialchars(file_get_contents($file));
$f2 = str_replace($from,$to,$f1);
$result = $f2;
}
if(file_put_contents($file,$result))
{die ('Замена произведена успешно!');} else {die ('Ошибка замены!');}
}?>
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск