...
✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Pakkige pildid veebisaidile, kasutades PHP-s reSmush.it

22

Postitatud PHP-s

Pildid muudavad teie veebisaidi kauniks ja lisavad külastajatele paremat kasutuskogemust. Kuid pildid võivad mõjutada ka saidi toimivust ja muuta saidi kiiruse meeletult aeglaseks. Ja me kõik teame, et aeglasemad veebisaidid ei saa Internetis edukalt hakkama.

Selles artiklis me näitame teile, kuidas tihendada veebisaitide pilte, kasutades PHP-s reSmush.it. Selle teenuse kasutamine võib vähendada nende veebisaidi piltide suurust. See aitab parandada lehe kiirust. ReSmush.it on tasuta pildikompressori tööriist. Kasutaja saab tihendada nii palju pilte kui soovib. Piltide arvul sellist piirangut pole.

Selle artikli kirjutamise ajal tihendab reSmush.it siiani üle 7 miljardi pildi ja neid loendatakse endiselt. See number tõestab, et see on kasutajate seas üsna populaarne teenus.

Alustamine

Loome lihtsa vormi, kuhu kasutaja saab pildi üles laadida. Pildi esitamisel saadame PHP abil pildi reSmush.it teenustesse ja saame meie pildi optimeeritud versiooni.

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

Lisasime siia faili sisestamise ja esitamise nupu. Kasutasime ka atribuuti, accept="image/*"mis võimaldab teil valida ainult pildifaile.

Pakkige pildid veebisaidile PHP-s

Nüüd peame suhtlema reSmush.it API-ga. Kirjutame koodi, mis täidab järgmisi samme.

  • Laadige pilt meie serverisse üles.
  • Saatke üleslaaditud pilt reSmush.it API lõpp-punkti.
  • Võtab vastu optimeeritud pildi tee.
  • Salvestage see optimeeritud versioon meie serverisse, asendades algse pildi.

Enne jätkamist veenduge, et olete oma serveris lubanud laienduse CURL.

<?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.";
}
?>

Eeltoodud koodis määrasin kvaliteediväärtuseks 80, mis on soovitatav. Saate selle arvu kohandada enam-vähem. Salvestame uploadskataloogi pilte. Teie puhul saate seda kataloogi kohandada.

Loodan, et saate aru, kuidas veebisaidi pilte tihendada PHP-s reSmush.it abil. Tahaksin kuulda teie mõtteid ja ettepanekuid allpool olevas kommentaaride jaotises.

seotud artiklid

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem