Scripts

Gezipte files uitpakken

Ik gebruik dit script zelf al een tijdje en het bevalt mij goed :), dus dacht ik, ik voeg het hier even toe ^^ Met dit script kan je plaatjes en PHP files in een zipje inpakken en door mijn script weer laten uitpakken en direct weergeven. Dit kan webruimte besparen. Dit bespaart dus geen webverkeer! In het voorbeeld zie je een pagina die ik even snel heb gemaakt om makkelijk door het zipje te klikken, de bron van deze pagina zit er dus niet bij ^^ Je moet wel de zip lib aan hebben staan op je host of je php.ini.

gezipte-files-uitpakken
================Een leuke naam.php 

[code]<?
//met de _GET variabel "f" verstuur je de file
//met de _GET variabel "z" verstuur je de naam van het zipje
$errorplaat='error.PNG'; //een error in een plaatje als de naam fout is
$errortekst='error, foute filenaam'; //een error als tekst als de naam fout is
$errorext='Je hebt een verkeerde filenaam en extensie opgegeven'; //een error als tekst als de extensie in de naam fout is

//waar bevind de zip zich? de rest spreekt denk ik wel voor zich
$filewaar=getcwd().DIRECTORY_SEPARATOR.$_GET['z'].'.zip';
if($zip = @zip_open($filewaar))
{
	while ($ziplees = zip_read($zip))
	{
		if (zip_entry_name($ziplees)==$_GET['f'])
		{
			if (zip_entry_open($zip, $ziplees, "r"))
			{
				$inhoud = zip_entry_read($ziplees, zip_entry_filesize($ziplees));
				$naam=zip_entry_name($ziplees);
			}
		}
	}
}

if (!isset($naam))
	$naam=$_GET['f'];

$naam = explode(".", $naam);
switch ($naam[1]) 
{
	case "jpeg": 	header ("Content-type: image/jpeg");	echo$inhoud;	$type=1;	break;
	case "gif": 	header ("Content-type: image/gif"); 	echo$inhoud;	$type=1;	break;
	case "jpg": 	header ("Content-type: image/jpeg"); 	echo$inhoud;	$type=1;	break;
	case "jpe": 	header ("Content-type: image/jpeg"); 	echo$inhoud;	$type=1;	break;
	case "bmp": 	header ("Content-type: image/bmp"); 	echo$inhoud;	$type=1;	break;
	case "png": 	header ("Content-type: image/png"); 	echo$inhoud;	$type=1;	break;
	case "tif": 	header ("Content-type: image/tiff"); 	echo$inhoud;	$type=1;	break;
	case "tiff": 	header ("Content-type: image/tiff"); 	echo$inhoud;	$type=1;	break;
	case "php": 	eval("?>".$inhoud."<?");								$type=2;	break;
	default;		$inhoud="";
}
if (!isset($inhoud))
{
	if ($type==1):
		header ("Content-type: image/png");
		ImagePng(imagecreatefrompng($errorplaat));
	elseif ($type==2):
		echo$errortekst;
	else:
		echo$errorext;
	endif;
}
?>[/code]

Reacties

0
Nog geen reacties.