1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
ini_set ('max_execution_time', 0);
if (isset ($_POST["valider"]))
{
/**************************************************************************
************************ Cherche les liens dans le fichier php ************
***************************************************************************/
$nv_fichier = fopen("C:\\wamp\\www\\test\\nv_fichier.txt", "a+"); //creation ou ouverture nouveau fichier pour mettre les liens
ftruncate($nv_fichier,0); //efface tout ce qu'il y a dans le nouveau fichier s'il existe deja
$chaine = file_get_contents("C:\\wamp\\www\\test\\fichier.php"); // parse la page
$motif='#<a href="(.*?)"(.*?)>#is'; // cherche les href
preg_match_all($motif,$chaine,$out,PREG_PATTERN_ORDER); // recupere le lien
foreach ($out[1] as $lien) // pour tous les liens faire
{
echo "$lien<br />";
fputs($nv_fichier, $lien."\r\n"); //ecrit les liens dans le nouveau fichier
/**************************************************************************
***************************** Création su zip *****************************
***************************************************************************/
$zip = new ZipArchive();
if($zip->open('document.zip', ZipArchive::CREATE) === true)
{
$zip->addFile($lien, $lien);
$zip->close();
echo 'ok';
}
else
{
echo 'Impossible d'ouvrir "Zip.zip<br/>';
// Traitement des erreurs avec un switch(), par exemple.
}
}
fclose($nv_fichier); //fermeture nouveau fichier
/**************************************************************************
*********************** Téléchargement du fichier zip *********************
***************************************************************************/
$full_path = 'document.zip'; // chemin système (local) vers le fichier
$file_name = basename($full_path);
ini_set('zlib.output_compression', 0);
$date = gmdate(DATE_RFC1123);
header('Pragma: public');
header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0');
header('Content-Tranfer-Encoding: none');
header('Content-Length: '.filesize($full_path));
header('Content-MD5: '.base64_encode(md5_file($full_path)));
header('Content-Type: application/octetstream; name="'.$file_name.'"');
header('Content-Disposition: attachment; filename="'.$file_name.'"');
header('Date: '.$date);
header('Expires: '.gmdate(DATE_RFC1123, time()+1));
header('Last-Modified: '.gmdate(DATE_RFC1123, filemtime($full_path)));
readfile($full_path);
exit; // nécessaire pour être certain de ne pas envoyer de fichier corrompu
/**************************************************************************
***************************************************************************
***************************************************************************/
} |
Partager