-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
slaine |
08-08-2005 17:49 346687 |
Редактирование строчки в файле
В файле пять строчек:
text1
text2
text3
text4
text5
как мне перезаписать третью строчку?
Например читаю её и редактирую:
PHP код:
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 346722 |
PHP код:
$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 346980 |
Спасибо...
У меня получилось так:
PHP код:
$f=file("test.txt");
$f[2] = $_POST['ok']."\n";
$fp=fopen("test.txt","w");
fwrite($fp,implode($f));
fclose($fp);
|
slaine
строки, где Влад проверял файл на наличие, запись записывал с условием - не лишние :)
|
XCodeR |
10-08-2005 00:20 347023 |
а не будет ли быстрее через "обычные" функции чтения/записи файла? вдруг в файле >10 000 000 строчек?
P.S. сам бы дела через file(); просто интересно..=)
|
Vlad Drakula |
10-08-2005 00:36 347030 |
Xcode
будет...
наверное...
но веть сказано что строчек пять...
так что не будет...
по строчно удобно менять когда файлы большие...
slaine
implode($f) - не правильно.
implode("\n\t", $f) - правильно.
(посмотрите документацию)
|
Время: 07:16.
© OSzone.net 2001-