Вместо того, чтобы изменять файл, я бы его разбирал, изменяя данные на PHP, переписывая файл после этого.
Для достижения этой цели, я бы в первую очередь создать функцию, которая анализирует входные данные в PHP массивы:
function parse($file) {
$records = array();
foreach(file($file) as $line) {
if(preg_match('~^Name: (.*),~', $line, $matches)) {
$record = array('name' => $matches[1]);
}
if(preg_match('~^Age: (.*),~', $line, $matches)) {
$record ['age'] = $matches[1];
}
if(preg_match('~^Date: (.*)\|\|~', $line, $matches)) {
$record ['date'] = $matches[1];
$records [] = $record;
}
}
return $records;
}
Во-вторых, я бы создать функцию, которая сглаживает массивов обратно в тот же формат файла снова:
function flatten($records, $file) {
$str = '#Start#';
$str .= "\n\n";
$str .= 'No. of records: ' . count($records) . "\n\n";
foreach($records as $record) {
$str .= 'Name: ' . $record['name'] . ",\n";
$str .= 'Age: ' . $record['name'] . ",\n";
$str .= 'Date: ' . $record['name'] . "||\n\n";
}
file_put_contents($file, $str . '#End#');
}
Затем использовать его как это:
$records = parse('your.file');
var_dump($records);
$records []= array(
'name' => 'hek2mgl',
'age' => '36',
'date' => '07/11/2013'
);
flatten($records, 'your.file');
написать парсер и сериалайзер для этого файла формы в. Затем используйте синтаксический анализатор для анализа файла в php-структурах (например, массивы), затем добавьте запись и сгладьте файл и перезапишите его. – hek2mgl
Подсказка: попробуйте получить все строки в массиве с '$ file_lines = file ($ file_name, FILE_IGNORE_NEW_LINES) '. Удалите # End #, поместите новую запись, поместите # End # и отредактируйте количество записей с помощью 'preg_replace'. Наконец, взорвите массив и верните его в файл. – Pieter
Стандартная рекомендация: вместо этого вы должны использовать базу данных. –