Ответы пользователя по тегу PHP
  • Как выгрузить csv в яндекс аудиторию через API?

    drekon
    @drekon Автор вопроса
    web-developer
    Помог отказ от использования библиотеки и использование следующего кода
    class Curl
    {
    
        /**
         * Отправить файл
         * @param string $url
         * @param string $pathToFile
         * @param string $type
         * @param array  $headers
         * @return false|string
         */
        public static function sendFile(string $url, string $pathToFile, string $type = 'text/plain', array $headers = [])
        {
            $boundary = uniqid();
            $filename = basename($pathToFile);
    
            $calls = join(PHP_EOL, explode("\n", file_get_contents($pathToFile)));
    
            $data = "--------------------------{$boundary}\x0D\x0A";
            $data .= "Content-Disposition: form-data; name=\"file\"; filename=\"{$filename}\"\x0D\x0A";
            $data .= "Content-Type: {$type}\x0D\x0A\x0D\x0A";
            $data .= $calls . "\x0A\x0D\x0A";
            $data .= "--------------------------{$boundary}--";
    
            $headers['Content-Type'] = "multipart/form-data; boundary=------------------------{$boundary}";
            $headers['Content-Length'] = strlen($data);
    
            $resHeaders = [];
            foreach ($headers as $key=>$head) {
                $resHeaders[] = $key . ': ' . $head;
            }
    
            return self::request($url, $data, $resHeaders);
        }
    
        /**
         * Запрос
         * @param string $url
         * @param string $data
         * @param array  $headers
         * @param string $method
         * @return false|string
         */
        public static function request(string $url, string $data, array $headers, string $method = 'POST')
        {
            $opt = [
                'http' => [
                    'method'  => $method,
                    'content' => $data,
                    'header'  => join(PHP_EOL, $headers),
                ],
            ];
    
            $context = stream_context_create($opt);
    
            return file_get_contents($url, false, $context);
        }
    
    }
    Ответ написан
    Комментировать
  • Почему php-fpm +nginx не отдаёт с генерированную картинку?

    drekon
    @drekon Автор вопроса
    web-developer
    Всё оказалось банально и просто. \n\r в одном из подключаемых файлов, если проще перенос строки перед выводом кода картинки.
    Так же одни из возможных проблем, в такой ситуации, кодировка файла UTF-8 with BOM.
    Ответ написан
    Комментировать