Ответы пользователя по тегу PHP
  • По какому принципу работает выгрузка значений из БД?

    @Galdar Автор вопроса
    Web, JS, PHP, NGINX, Linux
    Ninazu,
    Ещё одно решение моей проблемы
    Значит дело в том что попадает в переменную $login, и что делает функция connectTables
    Зуб даю, что если вставить явный запрос, то всё будет как нужно. % - подразумевает что у вас может быть что угодно в условии LIKE. Ставлю на то что логин не находит из-за того что вы его ни обрезали от невидимых символов и пытаетесь найти по точному соответствию


    За это отдельное спасибо!

    P.S. Кстати переменные можно вставлять внутрь двойных кавычек, не так режет глаз как конкатенация

    "`login` LIKE '".$login."'"
    так красивей будет
    "`login` LIKE '{$login}'"
    а еще более правильно использовать плейсхолдеры чтоб избежать SQL иньекции
    "`login` = :login"
    Ответ написан
    Комментировать
  • Как скачать файл, используя NGINX?

    @Galdar Автор вопроса
    Web, JS, PHP, NGINX, Linux
    ОТВЕТ НА ВОПРОС
    config.nginx
    rewrite ^/f/(.*)/(.*)$ /downloadFile.php?id=$1&file=$2 last;
    
        location /file/ {
          internal;
          root /var/www/domain/c;
        }


    AJAX
    /* ваш скрипт функция которая будет генерировать или как то там вставлять ссылки на ваши файлы */
    $('#c').append('<p id="" class="from-me downloadFile"><a href="/f/'+id+'/'+idImage+'" class="download" download><img src="'+url+'" class="downloadImage"/></a><i class="fas fa-file-download"></i><span class="size">'+size+'</span></p>');


    сам php к которому делается запрос
    // все проверки по которым будет подставляться нужный файл
    ...
    header('Content-Length: '.$filesize);
    header('Content-Type: '.$type); // Тип файла по его расширению
    header('Content-Disposition: attachment; filename='.$filename); // Имя файла
    header('Content-Transfer-Encoding: binary');
    header('Cache-Control: must-revalidate');
    header('X-Accel-Limit-Rate: 1024000'); // Ограничение скорости скачивания
    header('X-Accel-Buffering: yes');
    header('X-Accel-Charset: utf-8');
    header('X-Accel-Redirect: '.$files); // Путь к папке для правил редиректа nginx
    Ответ написан
    Комментировать
  • PhpSpreadsheet как сохранить изменения в тот же файл?

    @Galdar
    Web, JS, PHP, NGINX, Linux
    К setCellValue() можно применить цикл и различные функции, вывод из БД из массива и т.д.
    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    $sheet->setCellValue('A1'), 'Text')->setCellValue('B1'), 'Text').....;
    Ответ написан
  • Ошибка php. Проблема с модулем?(MacOS)?

    @Galdar
    Web, JS, PHP, NGINX, Linux
    apt-get update; apt install apt-transport-https ca-certificates

    wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

    sh -c 'echo "deb https://packages.sury.org/php/ stretch main" > /etc/apt/sources.list.d/php.list'

    apt-get update;apt-get install php7.1-gd php7.1-intl php7.1-apcu php7.1-mbstring php7.1-bcmath php7.1-cli php7.1-curl php7.1-fpm php7.1-gd php7.1-intl php7.1-mcrypt php7.1-mysql php7.1-soap php7.1-xml php7.1-zip php7.1-memcache php7.1-memcached php7.1-zip

    update-rc.d php7.1-fpm defaults
    Ответ написан
  • Как сохранить файл pdf в кодировке UTF-8?

    @Galdar Автор вопроса
    Web, JS, PHP, NGINX, Linux
    Попробуйте Mpdf, там он тоже есть. Мне показался самым вменяемым в отношении кодировки. Остальные мне много крови попили.
    Ответ написан
    Комментировать
  • Как в phpspreadsheet поменять кодировку при записи файла?

    @Galdar
    Web, JS, PHP, NGINX, Linux
    Вот так для csv, а вот как для pdf знаешь? Буду благодарен если подскажешь! Вот мой вопрос Как в библиотеке PhpSpreadsheet's установить в формате PDF кодировку UTF-8?
    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    
    $writerCSV = new Csv($spreadsheet);
    
    $writerCSV->setDelimiter(';');
    $writerCSV->setEnclosure('');
    $writerCSV->setLineEnding("\r\n");
    $writerCSV->setSheetIndex(0);
    $writerCSV->setUseBOM(true);
    $writerCSV->save($file.'.csv');
    Ответ написан
    Комментировать
  • PHP как остановить цикл если сработало условие?

    @Galdar
    Web, JS, PHP, NGINX, Linux
    return - возвратит значение из функции
    break - остановит функцию
    continue - возвратит в начало операции и начнёт со следующего значения

    Для функции советую использовать return:
    $a = 1;
    if($a > 0){
    $result = "Вывод значения из функции при соблюдении условия";
    return $result;
    }


    Максимально просто и понятно пытался написать
    Ответ написан
    Комментировать
  • Zabbix.Как вывести данные из JSON по ключу?

    @Galdar Автор вопроса
    Web, JS, PHP, NGINX, Linux
    Свой же вопрос и решил...


    Всё оказалось проще чем я думал.
    Создал на Zabbix agent`e ключ trunk c JSON кодом:
    JSON
    $array = [
     "data" => 
     [
      "name1" => [
       "linesnow" => "15",
       "linesmax" => "32"
      ]
     ]
    ];


    Создал "ШАБЛОН" для удобства, в котором создал "ЭЛЕМЕНТЫ ДАННЫХ"
    Элементы данных
    5c20f50190a09525210711.png

    Дал им уникальные имена и ключи.
    Далее зашёл в "ЭЛЕМЕНТ ДАННЫХ" => "ПРЕДОБРАБОТКА". Выбрал "Шаг предобработки" JSON и выполнил инструкцию JSON Path в документации Zabbix:

    Инструкция JSON Path

    Извлечение значения или фрагмента с JSON данных с использованием простейшего наблора функций JSONPath функционала.
    Примеры:
    $.document.item.value извлечёт 10 с {"document":{"item":{"value": 10}}}
    $.document.item извлечёт {"value": 10} с {"document":{"item":{"value": 10}}}
    $['a document'].item.value извлечёт 10 с {"a document":{"item":{"value": 10}}}
    $.document.items[1].value извлечёт 20 с {"document":{"items":[{"value": 10}, {"value": 20}]}}
    Обратите внимание, что поддерживаются только прямые пути к одиночным объектам в обозначении точкой или квадратной скобкой.
    В JSONPath обозначении точкой ($.a.b.c) можно использовать только буквенно-цифровые символы + символ подчёркивания . Если имя объекта JSON содержит другие символы, необходимо использовать обозначение квадратной скобкой ($['a']['b']['c']). Допускается смешивание обозначений ($.a['b'].c)
    Извлечение нескольких значений не поддерживается.
    Поддерживается начиная с 3.4.0.
    Предобработка
    5c20f847ed346290058332.png
    Надеюсь благодаря этому ответу, кто-то сэкономит своё время!
    Ответ написан
    Комментировать