Все, разобрался. Мож кому пригодиться:
<?php
ini_set ("memory_limit", "50M");
error_reporting (E_ALL);
$fp=fopen($filename, "r");
//открываем файл
$parts=round(filesize ($filename)/1000000);
//число частей архива по ~1 Мб
echo "открыли файл $filename, будем бить на $parts+1 частей.
";
$b=0;
for ($i = 0; $i <= $parts; $i++) {
//цикл по кол-ву частей архива
$newfilename=$filename . $i;
//задаем имя файла
fseek ($fp, $b);
$b=$b+1000000;
$contents = fread ($fp, filesize ($filename));
//считываем содержимое в переменную
$fp1=fopen($newfilename, "w+");
//открываем новый файл
echo "открыли файл $newfilename.
";
fwrite ($fp1, $contents, 1000000);
//пишем в него содержимое
echo "записали в файл $newfilename.
";
fclose ($fp1);
//закрываем файл
}
fclose ($fp);
//закрываем файл
?>А вот для склейки частей:
<?php
ini_set ("memory_limit", "50M");
error_reporting (E_ALL);
$fp1=fopen($filename, "w+");
//открываем новый файл
echo "открыли файл $filename.
";
for ($i = 0; $i <= $parts; $i++) {
//цикл по кол-ву частей архива
$partname=$filename . $i;
//задаем имя части архива
$fp=fopen($partname, "r");
//открываем часть архива
echo "открыли файл $partname.
";
$contents = fread ($fp, filesize ($partname));
//считываем содержимое в переменную
fclose ($fp);
//закрываем файл
unlink($partname);
fwrite ($fp1, $contents);
//пишем содержимое
echo "записали в файл $filename.
";
$size=filesize ($filename);
echo "Длина файла $filename $size.
";
}
fclose ($fp1);
//закрываем файл
?>