✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Стискайте зображення для веб-сайту за допомогою reSmush.it у PHP

19

Опубліковано в PHP

Зображення роблять ваш веб-сайт красивим і додають кращий досвід для відвідувачів. Однак зображення також можуть впливати на продуктивність сайту і робить швидкість вашого сайту шалено повільною. І всі ми знаємо, що повільніші веб-сайти не можуть досягти успіху в Інтернеті.

У цій статті ми покажемо вам, як стискати зображення для веб-сайтів за допомогою reSmush.it у PHP. Користуючись цією послугою, користувачі можуть зменшити розмір зображень своїх веб-сайтів. Це допоможе поліпшити швидкість сторінки. ReSmush.it – ​​це безкоштовний інструмент компресора зображень. Користувач може стискати скільки завгодно зображень. Не існує такого обмеження кількості зображень.

На момент написання цієї статті досі reSmush.it стискає понад 7 мільярдів зображень і все ще враховує. Цей номер доводить, що це досить популярна послуга серед користувачів.

Починаємо

Давайте створимо просту форму, куди користувач може завантажити зображення. Після надсилання зображення за допомогою PHP ми надішлемо його в служби reSmush.it і отримаємо оптимізовану версію нашого зображення.

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

Тут ми додали кнопку введення файлу та кнопку подання. Ми також використовували атрибут, accept="image/*"який дозволяє вибирати лише файли зображень.

Стискайте зображення для веб-сайту в PHP

Тепер ми маємо взаємодіяти з API reSmush.it. Ми збираємося написати код, який виконує наступні кроки.

  • Завантажте зображення на наш сервер.
  • Надішліть завантажене зображення в кінцеву точку API reSmush.it.
  • Отримує шлях оптимізованого зображення.
  • Зберігайте цю оптимізовану версію на нашому сервері, замінивши оригінальне зображення.

Перш ніж продовжити, переконайтеся, що ви увімкнули розширення 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.";
}
?>

У наведеному вище коді я встановив значення якості 80, що рекомендується. Ви можете налаштувати це число на більш-менш. Ми зберігаємо зображення всередині uploadsкаталогу. У вашому випадку ви можете налаштувати цей каталог.

Сподіваюся, ви розумієте, як стискати зображення для веб-сайту в PHP за допомогою reSmush.it. Я хотів би почути ваші думки та пропозиції у розділі коментарів нижче.

Пов’язані статті

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі