Dosyaları Birleştirme ve Parçalama

<?php
	class DosyaIslemcisi {
		private $anaDosya;
		private $icerikler;
		public $dosya;
		public $yol;
		public $dosyalar;
		public $parcaboyutu;
		public function parcala() {
			if(!file_exists($this->yol)) {
				mkdir($this->yol,0777);
			}
			$this->anaDosya = $this->yol . $this->dosya;
			echo $this->dosya." Dosyasi ";
			$birlesikDosya = fopen($this->anaDosya,'rb');
			if($birlesikDosya === false) {
				return 'Dosya Acilamiyor';
			}
			$i=0;
			while(!feof($birlesikDosya)) {
				$this->icerikler = fread($birlesikDosya,$this->parcaboyutu);
				$yeni = substr($this->dosya,0,strlen($this->dosya) - 4) . sprintf('%03d',$i++) . substr($this->dosya, -4);
				$yenidosya = $this->yol .$yeni ;
				$parcadosya = fopen($yenidosya,'wb');
				echo $yeni." ";
				fwrite($parcadosya, $this->icerikler);
				fclose($parcadosya);
			}
			echo "Olarak Parcalandi";
		}
		public function birlestir() {
			if(file_exists($this->yol . $this->dosya)) {
				unlink($this->yol . $this->dosya);
			}
			$dirHandle = dir($this->yol);
			$yenidosya = fopen($this->yol . $this->dosya, 'ab');
			for($i = 0; $i < count($this->dosyalar); $i++) {
				$this->icerikler = file_get_contents($this->yol . $this->dosyalar[$i]);
				fwrite($yenidosya, $this->icerikler);
			}
			fclose($yenidosya);
			echo $this->dosya." Dosyasina ";
			foreach($this->dosyalar as $f){echo $f." ";}
			echo "Dosyalari Eklendi<br>";
		}
	}	
	
 	$f=new DosyaIslemcisi();
	$f->dosyalar = ['turk.jpg','kibris.jpg','azer.jpg'];
	$f->dosya = "cikti.jpg";
	$f->yol = dirname(__FILE__)."/";
	$f->parcaboyutu = 2000;//byte
	$f->birlestir();
	$f->parcala(); 
?>

Eklenen Dosyalar

turk.jpg 1,61 KB kibris.jpg 4,75 KB azer.jpg 1,63 KB

Çıktısı

cikti.jpg 8,00 KB

Parçalamadan Sonraki Çıktılar

cikti000.jpg 1,95 KB

cikti001.jpg 1,95 KB

cikti002.jpg 1,95 KB

cikti003.jpg 1,95 KB

cikti004.jpg 0,20 KB