Comprimi le immagini per il sito web utilizzando reSmush.it in PHP
Inserito in PHP
Le immagini rendono il tuo sito web bello e aggiungono una migliore esperienza utente per i visitatori. Tuttavia, le immagini possono anche influenzare le prestazioni del sito e rallentare la velocità del tuo sito. E sappiamo tutti che i siti web più lenti non possono avere successo su Internet.
In questo articolo, ti mostriamo come comprimere le immagini per i siti Web utilizzando reSmush.it in PHP. Utilizzando questo servizio gli utenti possono ridurre le dimensioni delle immagini del proprio sito web. Aiuterà a migliorare la velocità della pagina. reSmush.it è uno strumento gratuito per la compressione delle immagini. Un utente può comprimere tutte le immagini che desidera. Non esiste un tale limite al numero di immagini.
Al momento della stesura di questo articolo, reSmush.it comprime finora più di 7 miliardi di immagini e continua a contare. Questo numero dimostra che è un servizio abbastanza popolare tra gli utenti.
Iniziare
Creiamo un semplice form dove l’utente può caricare l’immagine. Dopo aver inviato l’immagine, utilizzando PHP invieremo l’immagine ai servizi reSmush.it e riceveremo la versione ottimizzata della nostra immagine.
<form method="post" enctype="multipart/form-data">
<p><input type="file" name="image" accept="image/*" /></p>
<input type="submit" name="submit" value="Submit">
</form>
Qui abbiamo aggiunto un input di file e un pulsante di invio. Abbiamo anche utilizzato un attributo accept="image/*"
che consente di selezionare solo file di immagine.
Comprimi immagini per siti Web in PHP
Ora dobbiamo interagire con l’API di reSmush.it. Stiamo per scrivere un codice che esegue i seguenti passaggi.
- Carica l’immagine sul nostro server.
- Invia l’immagine caricata all’endpoint API di reSmush.it.
- Riceve il percorso di un’immagine ottimizzata.
- Archivia questa versione ottimizzata sul nostro server sostituendo l’immagine originale.
Prima di procedere assicurati di aver abilitato l’estensione cURL sul tuo server.
<?php
if (isset($_POST['submit'])) {
//allowed file types
$arr_file_types = ['image/png', 'image/gif', 'image/jpg', 'image/jpeg'];
if (!(in_array($_FILES['image']['type'], $arr_file_types))) {
die('Only image is allowed!');
}
if (!file_exists('uploads')) {
mkdir('uploads', 0777);
}
move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/'. $_FILES['image']['name']);
// optimize image using reSmush.it
$file = getcwd(). '/uploads/'. $_FILES['image']['name'];
$mime = mime_content_type($file);
$info = pathinfo($file);
$name = $info['basename'];
$output = new CURLFile($file, $mime, $name);
$data = array(
"files" => $output,
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://api.resmush.it/?qlty=80');
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
if (curl_errno($ch)) {
$result = curl_error($ch);
}
curl_close ($ch);
$arr_result = json_decode($result);
// store the optimized version of the image
$ch = curl_init($arr_result->dest);
$fp = fopen(getcwd(). '/uploads/'. $name, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
echo "File uploaded successfully.";
}
?>
Nel codice sopra, ho impostato il valore della qualità su "80", che è consigliato. Puoi regolare questo numero su più o meno. Stiamo memorizzando le immagini all’interno della uploads
directory. Nel tuo caso, puoi modificare questa directory.
Spero che tu capisca come comprimere le immagini per il sito web in PHP usando reSmush.it. Mi piacerebbe sentire i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.
articoli Correlati
- TinyPNG Comprimi le immagini usando PHP
- Una guida per caricare e comprimere immagini in Laravel
- Ottimizzazione delle immagini utilizzando il pacchetto di ottimizzazione delle immagini/web di artigiani