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

Форум PHP

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

 

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

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

тема: Как читать с файла по 50 строк?
 
 автор: restall   (25.03.2008 в 18:54)   письмо автору
 
 

Добрый день!

Есть код:

<?php 
for($i=0$i<=10$i++)
{
$name $i.'.html';  
$fp = @fopen ($name'w');  
if (
$fp)  

$contents="первые 50 строк";
fwrite ($fp$contents);
echo 
"$name - great!<br>";  
fclose ($fp);  
}  
else die (
"Couldn't open the file!"); 
}
?> 

Этот скрипт создает 10 файлов.
Нужно ,чтобы в каждый из этих файл впихивались данные с file.txt построчно, каждые 50 строк в новый файл.
На выходе получается 10 файликов с инфой с file.txt (по 50 строк в каждом ).
Зарание спасибо!

   
 
 автор: DEM   (25.03.2008 в 19:02)   письмо автору
 
   для: restall   (25.03.2008 в 18:54)
 

У меня в голове сейчас вертится очень тупой способ... Если вам подойдёт, напишу, но скорее всего он будет немного грузить систему...

   
 
 автор: restall   (25.03.2008 в 19:10)   письмо автору
 
   для: DEM   (25.03.2008 в 19:02)
 

ну, давайте попробуем, оптимизируем и прийдем к более облегченному...

   
 
 автор: KirillKiev   (25.03.2008 в 19:42)   письмо автору
 
   для: restall   (25.03.2008 в 19:10)
 

может так типа...

<?php
$arr 
file("file.txt");//откуда берем 
$shift 50
for(
$i=0$i<=10$i++)
{
$arrW array_splice($arr,0,$shift);    
if( 
count($arrW) == )break;
$name $i.'.html';  
$fp = @fopen ($name'w');  
if (
$fp)  

$contents=implode"\n"$arrW );
fwrite ($fp$contents);
echo 
"$name - great!<br>";  
fclose ($fp);  
}  
else die (
"Couldn't open the file!"); 
}
?>

   
 
 автор: restall   (25.03.2008 в 21:22)   письмо автору
 
   для: KirillKiev   (25.03.2008 в 19:42)
 

Всем, спасибо... уже ближе))
<?php 
$arr 
file("file.txt");//откуда берем  
$shift 50;  
for(
$i=0$i<=10$i++) 

$arrW array_splice($arr,0,$shift);     
if( 
count($arrW) == )break; 
$name $i.'.html';   
$fp = @fopen ($name'w');   
if (
$fp)   
{  
$contents=implode"\n"$arrW ); 
fwrite ($fp$contents); 
echo 
"$name - great!<br>";   
fclose ($fp);   
}   
else die (
"Couldn't open the file!");  

?> 

этот работает... но тут еще такое дело...
Мне нужно выполнить некоторые функции с каждой строчкой...
Мн нужно ее заключить в теги... это раз (file.txt - ссылки...) их нужно будет сделать ссылками...
+ еще несколько фильтровых фцнкций...
как реализовать это? Чтобы можно было работать с кажой строкой еще..

   
 
 автор: DEM   (25.03.2008 в 19:56)   письмо автору
 
   для: restall   (25.03.2008 в 19:10)
 

Попобуйте так... хоть я и не уверен, что правильно..

<?php  
function strs($filename$fi$name)
{
  
//$fi - Текущая строчка файла    
    
$file file($filename); //Файл который читаем      
    
$fp = @fopen ($name'w');  
    if(
$fp)
    {          
  for(
$i2=$fi,$i2<$fi+50;$i2++)
  {
      
fwrite ($fp$file[$i2]);      
      echo 
"$name - great!<br>"
  }
  } 
  
fclose ($fp);  
}   

$p 0;
for(
$i=0$i<=10$i++) 

$name $i.'.html';   
strs($filename$p$name);
$p += 50
}   
 
?> 

   
 
 автор: restall   (25.03.2008 в 21:23)   письмо автору
 
   для: DEM   (25.03.2008 в 19:56)
 

а здесь... ошибки... цыклично работает...(( где-то ошибки.. н опока еще не просек сам алгоритм...

   
 
 автор: restall   (25.03.2008 в 21:50)   письмо автору
 
   для: restall   (25.03.2008 в 21:23)
 


foreach ($arrW as $e)
{
$e="<a href=http://site.ru/>$e</a>";
$contents=$e; 
}

делаю так, создает все правельно... но в файликах пишет по одной ссылке... хотя нужно ж 50...

   
 
 автор: Drago   (25.03.2008 в 22:37)   письмо автору
 
   для: restall   (25.03.2008 в 21:50)
 

Вот еще вариант:

<?php
$strnum 
50;
$strarr file("text.txt");
$strcnt count($strarr);
$str "";

for(
$i=1$i <= $strcnt$i++)
    {
    
$str .= trim($strarr[$i 1])."\n";
    if (
$i $strnum == or $i == $strcnt)
        {
        
$n ceil($i $strnum);
        
$fp fopen("$n.txt""w");
        
fwrite($fp$str);
        
fclose($fp);
        
$str "";
        }
    }
?>

   
 
 автор: restall   (25.03.2008 в 23:33)   письмо автору
 
   для: Drago   (25.03.2008 в 22:37)
 

Спасибо, вы мне очень помогли! Последний пример, после пределки под свои нужны ооочень помог! Еще раз всем спасибо!

   
Rambler's Top100
вверх

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