В настоящее время я пытаюсь заменить строку в файле конфигурации для обновления версии. Строка выглядит как requiredBuild = 123456;
, и мне нужно изменить нумерацию. У меня есть следующее, которое вставляет новую строку после него, но мне нужно вместо этого заменить существующую строку.Замена строки в файле с помощью PHP
Как это осуществить? ftell() дает мне POS после строки, которую я хочу заменить, но удаление исходной строки там, где я запутался. Есть ли способ сделать что-то вроде ftell() - strlen (thisline) и заменить его на ''?
<?
$config = 'serverDZ.cfg';
$file=fopen($config,"r+") or exit("Unable to open file!");
$insertPos=0;
while (!feof($file))
{
$line=fgets($file);
if (strpos($line, 'requiredBuild') !== false)
{
$insertPos = ftell($file);
$newline = "requiredBuild = 124971;\n";
break;
}
}
fseek($file, $insertPos);
fwrite($file, $newline);
fclose($file);
?>
вы слышали 'sed'? Это отличная возможность узнать это! –
Я этого не делал, ранее использовал FART, но в этом случае он не работает. SED выглядит идеально, но я стараюсь, чтобы он был очень легким, поскольку я должен развернуть его как обновление для разных серверов, а затем очистить все файлы после его запуска, поэтому я выбрал один файл PHP. Неужели это будет сложно достичь? – 2014-09-18 03:01:25