Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удалить из файла первые 10 строк
 
 автор: realkasper   (10.10.2007 в 13:54)   письмо автору
 
 

Допустим есть файл, размер его 100 Мб. Ресурсы сервера ограничены (в плане что считать файл целиком не желательно)
. Вопросик: как из файла стереть первые 10 строк?
Заранее спаибо!

   
 
 автор: bronenos   (10.10.2007 в 14:29)   письмо автору
 
   для: realkasper   (10.10.2007 в 13:54)
 

<?php
$fname 
"file.txt"/* Имя файла */
$rows 10/* Стереть строк */

$fold fopen($fname"r") or die("Файл '$fname' не найден");
$fnew fopen("new_".$fname"w") or die("Не могу создать 'new_$fname'");
$i 0;

while (!
feof($fold))
{
  if (
$i >= $rowsfwrite($fnewfgets($fold));
  
$i++;
}

fclose($fold);
fclose($fnew);
?>

Но не проверял

   
 
 автор: Klyuchnikov   (10.10.2007 в 15:39)   письмо автору
 
   для: bronenos   (10.10.2007 в 14:29)
 

 <php
$file = "file.txt";
$fo = fopen($file, "a+");
$file = explode(" ", $file);
for($i=0;$i < 10;$i++){
 unset($file[$i]);

fwrite($fo,$file); 
fclose($fo); 
?>  
скрипт будет работать только в том случает если все строки у вас без пробелов и расположенны списком. Но я его не проверял

   
 
 автор: bronenos   (10.10.2007 в 15:53)   письмо автору
 
   для: Klyuchnikov   (10.10.2007 в 15:39)
 

$file = "file.txt"; 
...
$file = explode(" ", $file);

Что бы это значило?

   
 
 автор: realkasper   (10.10.2007 в 17:36)   письмо автору
 
   для: bronenos   (10.10.2007 в 14:29)
 

Что то не удаляет совсем))
Как его считать по частям и удалить 10 строк?

   
 
 автор: realkasper   (12.10.2007 в 10:32)   письмо автору
 
   для: realkasper   (10.10.2007 в 17:36)
 

Ни один из способов не помог(((

   
 
 автор: Faraon   (12.10.2007 в 11:07)   письмо автору
 
   для: realkasper   (12.10.2007 в 10:32)
 


<?php
$file
=file("test.txt");
$fp=fopen("test.txt","w");
for(
$i=0;$i<10;$i++)
{
unset(
$file[$i]);
}
fputs($fp,implode("",$file));
fclose($fp);
?>

   
 
 автор: kasmanaft   (12.10.2007 в 15:08)   письмо автору
 
   для: Faraon   (12.10.2007 в 11:07)
 

"Допустим есть файл, размер его 100 Мб."

realkasper, самый первый пример (bronenos'a) пробовали? Вроде бы должен работать..

   
 
 автор: bronenos   (12.10.2007 в 16:39)   письмо автору
 
   для: kasmanaft   (12.10.2007 в 15:08)
 

добавлю - на папку должны стоять права хотя бы 777, чтоб создать новый файл

   
 
 автор: bronenos   (12.10.2007 в 16:39)   письмо автору
 
   для: Faraon   (12.10.2007 в 11:07)
 

это ж как захламится память?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования