- Home
- Categorie
- Coding e Sistemistica
- PHP
- Creare script
-
Creare script
Salve ho trovato questi script sul forum, uno per l'upload con db ecco qui le pagine:
OPEN.PHP
h**p://zomer.altervista*org/open.txtWIEV.PHP
h**p://zomer.altervista*org/wiev.txtWRITE_DB.PHP
h**p://zomer.altervista*org/write.txtE fin qui tutto bene. Il secondo script che consente di creare delle miniature delle foto e ne modifica l'estensione cosi da richiamarle eccolo qui.
CONFIG_GALLERY.PHP
h**p://zomer.altervista*org/config_gallery.txtMAIN_GALLERY.PHP
[php]
<?php// Inclusione del file config_gallery.php per aquisire le variabili. include("config_gallery.php"); // Recupero della variabile passata in get. // il valore "index" rappresenta l'indice della fotogallery, "view" la visualizzazione della singola foto. @$mode = $_GET['mode']; // Definizione delle variabili in base al valore di $mode if ($mode == "index" || empty($mode) || !isset($mode)) { $quanto = $thumb_width; } elseif ($mode == "view") { $quanto = $photo_width; $destination_path = $dir; } // Aumenta la memoria utilizzabile fino a 128mb e il timeout a 4 minuti. // Questo ci consente di creare le miniature senza avere un errore di timeout dal server ini_set("memory_limit", "128M"); set_time_limit(240); // Se non esiste la cartella di destinazione delle miniature (vedi config_gallery.php) ne si forza la creazione if (!file_exists($destination_path)) { mkdir($destination_path , 0777); } // Apertura della directory in cui sono contenute le foto a dimensione originale if ($handle = opendir($dir)) { $i = 1; //Inizializzazione dell'indice // Letttura delle immagini conenute nella cartella $dir while (false !== ($file = readdir($handle))) { list($width, $height, $type, $attr) = @getimagesize($dir.$file); // Se è una immagine "JPEG" continuo con la sua elaborazione // altrimenti si passa alla foto successiva if($type == 2) { // Elaborazione delle nuove dimensioni (altezza e larghezza) in proporzione. // Ciò consente di non alterare la qualità della immagine. if($width > $height) { $new_width = $quanto; $new_height = ($quanto * $height) / $width; $new_height = number_format($new_height, 0); } elseif($height > $width) { $new_height = $quanto; $new_width = ($quanto * $width) / $height; $new_width = number_format($new_width, 0); } elseif($height == $width) { $new_width = $quanto; $new_height = $quanto; } //Se si sta visualizzando una singola foto e questa è già stata ridimensionata si ignora questo passaggio, altrimenti la foto viene ridimensionata. // L'"if" controlla se la foto in questione ha già le dimensioni desiderate. Se le dimensioni non sono uguali a quelle volute, verrà ridimensionata. if ($mode == "view") { if ($new_height != $height && $new_width != $width) { isset($compression) ? $compression = $compression : $compression = 100; // In cso non sia settata la compressione (vedi config_gallery.php) gli si assegna il valore di default $destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");// Creazione Immagine $srcimg=ImageCreateFromJPEG($dir.$file) or die("Problemi nell'aprire l'immagine"); //Apertura Immagine Originale ImageCopyResampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento"); //Ridimensionamento Nuova Immagine ImageJPEG($destimg, $destination_path.$file, $compression) or die("Problemi nel salvataggio"); //Salvataggio Nuova Immagine } } //Se si sta visualizzando l'indice delle foto (contenente le miniature) e queste sono già state ridimensionate si ignora questo passaggio, altrimenti la foto viene ridimensionata. // l'"if" controlla se esiste già una miniatura, chiamata con lo stesso nome della foto originale, presente nella cartella di destinazione. Se non esiste viene creata la minatura elseif (empty($mode)) { if (!file_exists($destination_path.'/'.$file)) //Se la miniatura non esiste verrà creata altrimenti si ignora questo passaggio { isset($compression) ? $compression = $compression : $compression = 100; // In cso non sia settata la compressione (vedi config_gallery.php) gli si assegna il valore di default $destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");// Creazione Immagine $srcimg=ImageCreateFromJPEG($dir.$file) or die("Problemi nell'aprire l'immagine"); //Apertura Immagine Originale ImageCopyResampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento"); //Ridimensionamento Nuova Immagine ImageJPEG($destimg, $destination_path.$file, $compression) or die("Problemi nel salvataggio"); //Salvataggio Nuova Immagine } } $image * = $file; //Creazione dell'array contenente le immagini $i++; //Incremento dell'indice } } // Chiusura della cartella $dir closedir($handle); } else { // Se vi è un errore nell'aprire la cartella $dir allora viene stampato a video seguente paragrafo echo "<p align=\"center\"> Impossibile eseguire lo script. <br /> Accertati di aver impostato correttamente i parametri e che la cartella (nome: \"<b>$dir</b>\" ) in cui sono contenute le foto esista </p>"; } //Se si sta visualizzando l'indice allora utilizzo la paginazione propria dell'indice if ($mode == "index" || empty($mode) || !isset($mode)) { // Se si è scelto di utilizzare la paginazione (vedi file config_gallery.php) allora vengono stampati i links. // Altrimenti verranno visualizzate tutte le immagini nella stessa pagina. if (empty($numperpagina)) { $numperpagina = count($image); } isset($_GET['page']) ? $pageNum = $_GET['page'] : $pageNum = 1; $inizio = ($pageNum - 1) * $numperpagina; $fine = $inizio + $numperpagina; $i = 1; //inizializzo l'indice foreach ($image as $id => $nome) { if ($i > $fine) { break; } if ($i >= $inizio) { // stampa la miniatura echo " <a href=\"?id=$i&from=$pageNum&mode=view\"><img src=\"".$destination_path.$nome."\" title=\"".$nome."\" border=\"0\" alt=\"foto\" /></a>"; } $i++; // incremento dell'indice } if ($fine > count($image)) { $fine = count($image); } // Conto delle pagine $maxPage = ceil(count($image)/$numperpagina); .........ecc
?>
[/php]Io vorrei integrare alcune funzioni del secondo script con quelle del primo, ora io non ci riesco, mi potreste aiutare? vi elenco funzioni interessate.
:arrow:Creare miniature.
:arrow:Poter richiamare l'immagine senza confusioni con l'esetensione (perchè da quanto ho capito nel secondo script trasforma l'estensione).
Grazie! della vostra collaborazione