Maison >développement back-end >tutoriel php >Explication détaillée des exemples de fractionnement et de fusion de fichiers de transfert de reprise de point d'arrêt PHP

Explication détaillée des exemples de fractionnement et de fusion de fichiers de transfert de reprise de point d'arrêt PHP

怪我咯
怪我咯original
2017-07-05 10:50:421219parcourir

Cet article présente principalement en détail la segmentation et la fusion des fichiers du transfert de reprise de point d'arrêt PHP. Il a une certaine valeur de référence. Les amis intéressés peuvent se référer à

PHP pour implémenter le transfert de reprise de point d'arrêt. fichier en plusieurs petits fichiers, puis téléchargez-les individuellement . Fusionner après transmission.

│ merge.php – script de fusion de fichiers
│ merge.zip – fichier fusionné
│ socket.zip – fichier qui doit être divisé
│ divisé. php – Script de fichier divisé

└─split – Répertoire de petits fichiers divisés

Ce qui suit est le code source

split.php

<?php

$fp = fopen("socket.zip", "rb");
$filesize = 10;
$i = 0;
$no = 1;
while(!feof($fp))
{
  $file = fread($fp, $filesize);

  $fp2 = fopen("./split/socket.port".sprintf("%04d",$no).".".$i."-".($i+$filesize).".tmp", "wb");
  fwrite($fp2, $file, $filesize);
  fclose($fp2);
  $i+=$filesize+1;
$no++;
}

fclose($fp);

merge.php

<?php
$filelist = glob(&#39;./split/*socket*.tmp&#39;);
$filesize = 10;

//print_r($filelist);
$mergeFileName = &#39;merg.zip&#39;;

unlink($mergeFileName);
  $fp2 = fopen($mergeFileName,"w+");
foreach($filelist as $k => $v)
{
  $fp = fopen($v, "rb");
   $content = fread($fp, $filesize);

   fwrite($fp2, $content, $filesize);
   unset($content);
   fclose($fp);
   echo $k,"\n";
}
  fclose($fp2);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn