Questo script PHP esegue una scansione ricorsiva della cartella delle immagini originali, converte le immagini valide in formato WebP utilizzando la funzione convertToWebP() e le salva nella cartella delle immagini ottimizzate, mantenendo intatte le immagini originali.
Questo script PHP ha lo scopo di ottimizzare le immagini presenti in una determinata cartella, creando una copia temporanea nel formato WebP mentre lascia intatte le immagini originali sul server.
<?php
// Funzione per convertire un'immagine in formato WebP
function convertToWebP($sourcePath, $destinationPath, $quality = 80) {
$sourceImage = imagecreatefromjpeg($sourcePath);
imagepalettetotruecolor($sourceImage);
imagealphablending($sourceImage, true);
imagesavealpha($sourceImage, true);
imagewebp($sourceImage, $destinationPath, $quality);
imagedestroy($sourceImage);
}
// Percorso alla cartella delle immagini originali
$originalImagesPath = '/path/to/original/images/';
// Percorso alla cartella temporanea per le immagini ottimizzate
$optimizedImagesPath = '/path/to/optimized/images/';
// Elenco delle estensioni di file supportate
$supportedExtensions = ['jpg', 'jpeg', 'png'];
// Scandire la cartella delle immagini originali
$directoryIterator = new RecursiveIteratorIterator(new
RecursiveDirectoryIterator($originalImagesPath));
foreach ($directoryIterator as $file) {
// Verificare se il file è un file regolare e ha un'estensione supportata
if ($file->isFile() && in_array(strtolower($file->getExtension()),
$supportedExtensions)) {
$originalImagePath = $file->getPathname();
$optimizedImagePath = $optimizedImagesPath . $file->getRelativePath() .
'/' . $file->getBasename('.' . $file->getExtension()) . '.webp';
// Creare la cartella di destinazione se non esiste già
if (!is_dir(dirname($optimizedImagePath))) {
mkdir(dirname($optimizedImagePath), 0777, true);
}
// Convertire l'immagine in formato WebP
convertToWebP($originalImagePath, $optimizedImagePath);
}
}
echo 'Ottimizzazione completata!';
?>
Assicurati di impostare correttamente i percorsi della cartella delle immagini originali ($originalImagesPath
) e della cartella temporanea per le immagini ottimizzate ($optimizedImagesPath
). Verifica anche di avere le estensioni di file supportate corrette ($supportedExtensions
), che attualmente includono "jpg", "jpeg" e "png".
Lo script scandirà la cartella delle immagini originali, convertirà ogni immagine trovata in formato WebP e la salverà nella cartella delle immagini ottimizzate mantenendo la stessa struttura delle sottocartelle originali. Alla fine, verrà visualizzato il messaggio "Ottimizzazione completata!".
Ricorda che per eseguire questo script, il server deve avere le estensioni PHP GD abilitate per lavorare con le immagini.
Script PHP per ottimizzazione immagini nel formato webP
Spiegazione passo passo dello script PHP per ottimizzare le immagini e creare una copia temporanea in formato WebP.
1 . Definizione della funzione convertToWeb
P
Questa funzione prende in input il percorso dell'immagine originale, il percorso di destinazione per l'immagine ottimizzata in formato WebP e la qualità desiderata dell'immagine. La funzione utilizza le funzioni di manipolazione delle immagini GD di PHP per convertire l'immagine originale in formato WebP.
2 . Definizione dei percorsi delle cartelle
Devi impostare i percorsi corretti per la cartella delle immagini originali ($originalImagesPath
) e la cartella temporanea per le immagini ottimizzate ($optimizedImagesPath
). Assicurati che questi percorsi siano corretti e accessibili dallo script.
3 . Definizione delle estensioni di file supportate
L'array $supportedExtensions
contiene le estensioni di file supportate per le immagini. Attualmente, l'array include "jpg", "jpeg" e "png". Puoi modificare quest'array aggiungendo o rimuovendo estensioni a seconda delle tue esigenze.
4 . Scansione delle immagini originali
Il codice utilizza la classe RecursiveIteratorIterator
per scansionare ricorsivamente la cartella delle immagini originali e ottenere tutti i file all'interno, compresi quelli nelle eventuali sottocartelle.
5 . Verifica del file
Per ogni file trovato nella scansione, viene verificato se è un file regolare e se ha un'estensione supportata. Questo viene fatto con la condizione if ($file->isFile() && in_array(strtolower($file->getExtension()), $supportedExtensions))
.
6 . Ottenimento dei percorsi dei file
Se il file è valido, vengono ottenuti il percorso completo dell'immagine originale ($originalImagePath
) e il percorso di destinazione per l'immagine ottimizzata in formato WebP ($optimizedImagePath
).
7 . Creazione della cartella di destinazione
Se la cartella di destinazione per l'immagine ottimizzata non esiste ancora, viene creata utilizzando la funzione mkdir()
. Viene creata la struttura delle sottocartelle utilizzando dirname($optimizedImagePath)
come percorso.
8 . Conversione dell'immagine in formato WebP
L'immagine originale viene passata alla funzione convertToWebP()
insieme al percorso di destinazione dell'immagine ottimizzata. La funzione si occupa di aprire l'immagine utilizzando imagecreatefromjpeg()
, convertirla in formato true-color con imagepalettetotruecolor()
, abilitare la gestione dell'alpha blending e salvare l'immagine ottimizzata in formato WebP con imagewebp()
. Infine, l'immagine viene distrutta utilizzando imagedestroy()
.
9 . Messaggio di completamento
Dopo aver convertito tutte le immagini, viene visualizzato il messaggio "Ottimizzazione completata!".
Assicurati di configurare correttamente i percorsi delle cartelle delle immagini originali e delle immagini ottimizzate nel tuo ambiente