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

Форум PHP

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

 

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

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

тема: Разбивка файлов
 
 автор: Tor   (19.11.2004 в 18:45)
 
 

Как можно разбить файл (любой) на несколько частей?

   
 
 автор: cheops   (19.11.2004 в 23:31)   письмо автору
 
   для: Tor   (19.11.2004 в 18:45)
 

Хм... т.е. требуется разбить файл на части определённого размера или файл требуется разбить на определённое число кусков? Вот вариант привязанный к размеру куска:
<?php
  
// Имя файла
  
$filename "Site.rar";
  
// Разбиваем файл на куски по 10 000
  // За одно и запишем их в разные файлы
  
$piece 10000;
  
// Открываем исходный файл
  
$fp fopen($filename"r");
  
// Читаем содержимое файла в буфер
  
$bufer fread($fpfilesize($filename));
  
// Закрываем файл
  
fclose($fp);
  
// Подсчитываем число кусков, на которые
  // разобьётся файл
  
$count = (int)filesize($filename)/$piece;
  if((float)(
filesize($filename)/$piece) - $count != 0$count++;
  
// В цикле разбиваем содержимое файла в переменной
  // $bufer на части
  
for($i=0$i<$count; ++$i)
  {
    
$part substr($bufer,$i*$piece,$piece);
    
// Сохраняем кусок в файле
    
$fp fopen("Site.tm".$i,"w");
    
fwrite($fp,$part);
    
fclose($fp);
  }
?>

   
 
 автор: Tor   (20.11.2004 в 00:04)
 
   для: cheops   (19.11.2004 в 23:31)
 

Как я понимаю 10000 - это в байтах.

А как их склеить?

   
 
 автор: cheops   (20.11.2004 в 00:36)   письмо автору
 
   для: Tor   (20.11.2004 в 00:04)
 

>Как я понимаю 10000 - это в байтах.
Да это байты.
>А как их склеить?
<?php
  $bufer 
"";
  for(
$i=0$i<100000; ++$i)
  {
    
$filename "Site.tm".$i;
    if(
file_exists($filename))
    {
      
$fp fopen($filename,"r");
      
$bufer .= fread($fp,filesize($filename));
      
fclose($fp);
    }
    else
    {
      
// Если файла с таким именем не
      // существует - выходим из цикла
      
break;
    }
    
// Склееные значения $bufer
    // помещаем в кончный файл
    
$fp fopen("Site_final.rar","w");
    
fwrite($fp,$bufer);
    
fclose($fp);
  }
?>

   
 
 автор: Tor   (21.11.2004 в 16:41)
 
   для: cheops   (20.11.2004 в 00:36)
 

Спасибо.

   
Rambler's Top100
вверх

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