Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Редактирование строчки в файле (http://forum.oszone.net/showthread.php?t=52491)

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); 


mar 09-08-2005 21:24 346982

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.

Время: 07:16.
© OSzone.net 2001-