Ответы пользователя по тегу PHP
  • Как правильно ресайзить изображение на PHP?

    Wacdis
    @Wacdis
    PHP, Python, GO, Rust, NodeJS, SOA/MSA
    Если задача вписать изображение, то вычисляете соотношения обоих изображений (источник и цель) и с помощью их вычисляете нужные width, height и top/left точку, вставляете. Что-то типа этого:
    $k1 = ($width / $height);
    $k2 = ($source_width / $source_height);
    if ($k1 > $k2) {
      $w_lt = round(($width-($height*$k2))/2);
      $h_lt = 0;
      $w_rb = round(($height*$k2));
      $h_rb = $height;
    } elseif ($k1 < $k2) {
      $w_lt = 0;
      $h_lt = round(($height-round($width/$k2))/2);
      $w_rb = $width;
      $h_rb = round($width/$k2);
    } else {
      $w_lt = 0;
      $h_lt = 0;
      $w_rb = $width;
      $h_rb = $height;
    }
    $image_modified = imagecreatetruecolor($width,$height);
    if ($isPNG) {imageAlphaBlending($image_modified, false);imageSaveAlpha($image_modified, true);}
    imagecopyresampled($image_modified, $image, $w_lt, $h_lt, 0, 0, $w_rb, $h_rb, $source_width, $source_height);
    Ответ написан
    Комментировать
  • Не удаётся получить тип файла в php. Что делать?

    Wacdis
    @Wacdis
    PHP, Python, GO, Rust, NodeJS, SOA/MSA
    В данном случае, фильтрация по картинкам. Поэтому, я бы на стороне клиента попытался бы загрузить указанный файл в DOM Image и на onLoad'е получил бы понимание, картинка ли это.

    Если же принципиально на сервере, то mime_content_type с $_FILES['file']['tmp_name'], как это уже указывали в ответах.

    Если защищаться, то фотку можно проверять либо отдельным изолированным микросервисом, так как это не быстрый процесс.
    Ответ написан
    Комментировать
  • Как в NGINX пропустить запрос OPTIONS в php-fpm?

    Wacdis
    @Wacdis Автор вопроса
    PHP, Python, GO, Rust, NodeJS, SOA/MSA
    Нашел иголку в стогу сена... Все работало и у меня. Разница в URL запроса. Я все запросы отправлял на / адрес. А нельзя, видимо, отправлять запросы, отличные от GET POST и HEAD на /

    Правильным ответом буду считать Ваш, Александр Карабанов, так как нашел отличие в вашем совете.

    Спасибо!
    Ответ написан
    Комментировать
  • При проверке некоторых доменов на SSL PHP-скрипт зацикливается. Можете помочь с вопросом?

    Wacdis
    @Wacdis
    PHP, Python, GO, Rust, NodeJS, SOA/MSA
    Задайте Curl'у timeout в сек.:
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); // таймаут для соединения с хостом
    curl_setopt($ch, CURLOPT_TIMEOUT, 15); // таймаут для сессии
    Ответ написан
    Комментировать
  • Телеграм Бот на PHP отправляет 3 сообщения в ответ в место 1. Поможете?

    Wacdis
    @Wacdis
    PHP, Python, GO, Rust, NodeJS, SOA/MSA
    А зачем читать несколько сообщений подряд? Webhook URL вызывается каждый раз, как вам приходит сообщение.
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    
    $mess = 'https://api.telegram.org/bot***BOT_TOKEN***/getUpdates';
    $com = file_get_contents($mess);
    $com1 = json_decode($com);
    $mess = end($com1->result)->message;
    if (is_numeric($mess->chat->id) {
    	$send = 'https://api.telegram.org/bot***BOT_TOKEN***/sendMessage?'
    		.'chat_id=' . $mess->chat->id
    		.'reply_to_message_id=' . $mess->id
    		.'&text=' . $mess->text;
    	file_get_contents($send);
    }
    Ответ написан
  • Как вставить div из другой страницы в текст ссылки href?

    Wacdis
    @Wacdis
    PHP, Python, GO, Rust, NodeJS, SOA/MSA
    Сделать такое можно, но не нужно. 10 посетителей каталога с 12 товарами добавят 120 запросов на сервер, что очень и очень плохой тон! Если нужен товар из чужого магазина, то лучше делать scrabbing/grabbing каталога отдельным фоновым процессом через crontab, 1 раз в сутки в базу своих товаров.
    Ответ написан
    1 комментарий