Войти

Показать полную графическую версию : Редактирование строчки в файле


slaine
08-08-2005, 17:49
В файле пять строчек:

text1
text2
text3
text4
text5

как мне перезаписать третью строчку?
Например читаю её и редактирую:

error_reporting(0);
$file = file("text.txt");

if (isset($_POST['ok'])){
$edit = $_POST['ok'];

???

}

echo "<form action=pet.php method=post>";
echo "<textarea cols=35 rows=8 name=ok>".$file[2]."</textarea>";
echo "<input type='submit'>";
echo "</form>";



и чё делать я незнаю дальше, вообще возможно ли так сделать?

Vlad Drakula
08-08-2005, 20:46
$file = file("text.txt");

if (isset($_POST['ok'])){

$file[2] = $_POST['ok'];

$filename = 'test.txt';

// Let's make sure the file exists and is writable first.
if (is_writable($filename)) {

// In our example we're opening $filename in append mode.
// The file pointer is at the bottom of the file hence
// that's where $somecontent will go when we fwrite() it.
if (!$handle = fopen($filename, 'a')) {
echo "Cannot open file ($filename)";
exit;
}

// Write $somecontent to our opened file.
foreach($file as $s)
fwrite($handle, $s."\n\t");

fclose($handle);

} else {
echo "The file $filename is not writable";
}


}

slaine
09-08-2005, 21:13
Спасибо...
У меня получилось так:

$f=file("test.txt");

$f[2] = $_POST['ok']."\n";

$fp=fopen("test.txt","w");

fwrite($fp,implode($f));

fclose($fp);

mar
09-08-2005, 21:24
slaine
строки, где Влад проверял файл на наличие, запись записывал с условием - не лишние :)

XCodeR
10-08-2005, 00:20
а не будет ли быстрее через "обычные" функции чтения/записи файла? вдруг в файле >10 000 000 строчек?
P.S. сам бы дела через file(); просто интересно..=)

Vlad Drakula
10-08-2005, 00:36
Xcode
будет...
наверное...
но веть сказано что строчек пять...
так что не будет...
по строчно удобно менять когда файлы большие...

slaine
implode($f) - не правильно.
implode("\n\t", $f) - правильно.
(посмотрите документацию)




© OSzone.net 2001-2012