...
✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Komprimera bilder för webbplatsen med reSmush.it i PHP

19

Upplagt i PHP

Bilder gör din webbplats vacker och ger besökarna en bättre användarupplevelse. Bilder kan dock också påverka webbplatsens prestanda och gör din webbplats hastigt vansinnigt långsam. Och vi vet alla att långsammare webbplatser inte kan lyckas på Internet.

I den här artikeln visar vi dig hur du komprimerar bilder för webbplatser med reSmush.it i PHP. Genom att använda denna tjänst kan användare minska storleken på deras webbplatsbilder. Det hjälper till att förbättra sidhastigheten. ReSmush.it är ett gratis bildkompressorverktyg. En användare kan komprimera så många bilder som de vill. Det finns ingen sådan gräns för antalet bilder.

När denna artikel skrivs komprimerar reSmush.it mer än 7 miljarder bilder hittills och räknar fortfarande. Detta nummer visar att det är en ganska populär tjänst bland användarna.

Komma igång

Låt oss skapa ett enkelt formulär där användaren kan ladda upp bilden. När vi skickar in bilden med PHP skickar vi bilden till reSmush.it-tjänsterna och får den optimerade versionen av vår bild.

<form method="post" enctype="multipart/form-data">
    <p><input type="file" name="image" accept="image/*" /></p>
    <input type="submit" name="submit" value="Submit">
</form>

Här har vi lagt till en filinmatnings- och skicka-knapp. Vi använde också ett attribut accept="image/*"som låter dig välja endast bildfiler.

Komprimera bilder för webbplats i PHP

Nu måste vi interagera med API för reSmush.it. Vi ska skriva en kod som utför följande steg.

  • Ladda upp bild på vår server.
  • Skicka den uppladdade bilden till API-slutpunkten för reSmush.it.
  • Tar emot sökvägen till en optimerad bild.
  • Lagra den här optimerade versionen på vår server genom att ersätta originalbilden.

Innan du fortsätter, se till att du har aktiverat cURL-tillägget på din 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.";
}
?>

I ovanstående kod ställer jag in kvalitetsvärdet till ’80’ vilket rekommenderas. Du kan justera detta nummer till mer eller mindre. Vi lagrar bilder i uploadskatalogen. I ditt fall kan du justera den här katalogen.

Jag hoppas att du förstår hur du komprimerar bilder till webbplatsen i PHP med reSmush.it. Jag skulle vilja höra dina tankar och förslag i kommentarsektionen nedan.

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer