Задать вопрос
Ответы пользователя по тегу PHP
  • Как сделать, чтобы php не ждал завершения предыдущего потока?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    4 комментария
  • Перебор и замена данных в многомерном массиве?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Нужно пройтись по этому массиву и выбрать эти идентификаторы. Потому на основании их будет сделана выборка и мы получим пути к изображениям.

    array_map() не пойдёт?

    P.S. Там справа ещё пачка функий на эту же тему.
    Ответ написан
  • Какую cms выбрать, с возможностью управления каталогом компаний?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Здравствуйте!
    Здравствуйте!

    В поиске cms в которой будет основная функция — каталог пользователей (по сути отдельных компаний). От движка требуется возможность регистрации новых компаний как самими компаниями так и админом.
    Ориентировочно - каждая вторая

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

    А так же возможность присваивать (рассылать) отдельным группам различные документы из каталога (pdf, текстовые сообщения и т.п.).
    Не припоминаю такого фунционала нигде (*это не значит, что его нет, просто лично я - такого не помню)

    Посоветуйте, в сторону какой cms ориентироваться? Слышал, что CMS Drupal позволяет настраивать нечто подобное.
    Drupal, Битрикс, возможно DLE, ещё Joomla по моему умеет большую часть из этого списка
    Ответ написан
    Комментировать
  • Рандом число из нескольких диапазонов?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    как реализовать поиск рандомного числа из нескольких диапазонов: 1-17, 26-100
    Как вариант - можете создать массив, каждый элемент которого будет содержать 2 значения - минимальное и максимальное число. Дальше с помощью функции rand() выбираете число из диапазона от 0 до длинна_массива-1 - это будет индекс массива. Далее, с помощью той же функции, выбираете рандомное число уже из этого диапазона.
    Ответ написан
    2 комментария
  • Шаблонизаторы ещё актуальны?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Шаблонизаторы типа Smarty, Twig в 2017 востребованы, если с ними раньше не работал стоит ли смотреть, изучать что бы повысить ценность свою на рынке труда?

    Smarty - вряд ли.
    Twig - вполне себе актуален, я Вам даже больше скажу, он уже интегрирован "из коробки" в довольно популярную CMS по имени Drupal 8 (т.к. он сделан на базе Symfony) и собственно, в не менее популярный фреймворк под названием Symfony. И, Twig отлично встраивается в очень популярный фреймворк (я имею в виду, в ракурсе PHP-*) под названием Laravel, который в свою очередь так же имеет свой весьма неплохой шаблонизатор, под названием Blade.

    Среди прочего, вариация Twig'а есть даже для JS (Node.JS), в качестве альтернативы таким штукам как Pug/Jade например. *По информации одного из наших коллег, такие шаблоны (в JS-вариации интерпретатора) отлично переносятся потом в оригинальный Twig/PHP (имеют хорошую совместимость/переносимость).
    *Сам не проверял, но, доверяю словам автора.

    Или их нативный php всё же их вытеснил
    Из тех шаблонизаторов, что я могу вспомнить, по моему, все "компилируются" (преобразуются) в нативный для системы код (даже Smarty), т.е. если мы говорим про PHP - то соотв. в PHP-код. Парсится шаблон в код не часто и разница в производительности довольно не значительная, в 99% случаев - ей можно принебречь.

    или все ушли во Фронтенд шаблонизаторы?

    У них обычно немного разные категории задач. Если Вы говорите про шаблонизаторы аля Pug/Jade - то, что из них выходит, в конечный не-JS код, интегрируется плохо. То есть, смысл от этого шаблонизатора только для того, кто делает вёрстку, практической пользы при переносе на PHP-движок (и другие не JS-движки) от него обычно нет, либо очень мало.

    Если говорить о чисто клиентских реализациях - генерировать данные на клиенте, в таком объёме, по моему, не кошерно в подавляющем большинстве случаев, с учётом того, что сервер может кэшировать страницу целиком и выдавать сразу готовую (Varnish, например, это если говорить о необходимости высокой производительности), а какой-нибудь полу-мёртвый смартфон, бедолаги, который зайдет на подобный сайт - лопнет от чрезмерного изобилия JS-кода.
    Ответ написан
    Комментировать
  • Как в Drupal правильно подключить стили для мобильных устройств?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Создал его, подключаю в папке шаблона в файле header.php
    Раньше я помню, файлы стилей в module.info (или как-то так) подключались. В каком-то системном файле шаблона, там где описание шаблона, название, скриншот и т.д. прописываются... Этот файл прям в корешке шаблона лежал, с расширением .info кажется. *Возможно, я что-то забыл за давность лет или ошибаюсь...

    Он подключился, вот только стилям даже при меди-запросах приоритет не ставится, то есть все равно используются основные стили сайта.
    Порядок подключения правильный? По логике, media-запросы должны идти после основного контента, т.е. это должен быть последний файл стилей или по другому: "рестайлинг" должен после того, как основной элемент уже отрисован.

    обязательное условие -- весь респонсив писать в отдельно созданном файле.
    Пишите в отдельном, подключите его в конце основного. Эффект по моему, будет тот же...
    Ответ написан
  • Почему не удаётся войти под root MySQL пользователем в PHPMyAdmin?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Возможно в том, что соотв. записи разрешающей вход - в базе нет. Можно попробовать из под рута запустить mysql-клиент (в консонли). Такой подход работает с MariaDB, с MySQL'ом возможно тоже прокатит.

    И посмотреть потом, кому с какого хоста можно заходить. База: mysql, таблица: user. Пример.
    Ответ написан
  • Какой PHP фреймворк для создания доски объявлений?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    наверняка нет специального фреймворка для доски объявлений) поэтому просто посоветуйте, пожалуйста, самый популярный, удобный, новый

    Самый простой - CodeIgniter
    Самый популярный - в СССР - YII(2), в остальном мире - Laravel5
    Самый удобный - Symfony3
    Самый новый - ещё не выпустили, в разработке пока

    P.S. Всё выше написанное очень субъективно и зависит от Ваших личных предпочтений, возможностей, способностей и прочих факторов. И конечно же, никто Вам ничего объективно не посоветует, т.к. будет очень хорошо, если тут будет с дюжину человек хотя бы, которые действительно хорошо знают хотя бы 3-4 фреймворка, что бы их сравнить. Так же, неплохо будет, если большая часть отвечающих здесь будет знать на отлично - хотя бы 1 фреймворк :)

    P.P.S. Делайте выводы! :D
    Ответ написан
    Комментировать
  • Как сгенерировать резиновое изображение?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Судя по всему, Вам нужно это. Если текста "много" - делаем размер шрифта меньше на единицу и так до тех пор, пока его "много" быть не перестанет.
    Ответ написан
    2 комментария
  • Mysql_query() какой синтаксис для foreign key?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    А как связан синтаксис SQL с "драйвером" (прокладкой PHP<->MySQL) БД? Вам говорят о том, что вместо mysql_ нужно использовать либо mysqli_, либо PDO, на синтаксис это не влияет никак вообще.

    Примеров полно, например тут.
    Ответ написан
    4 комментария
  • Как сохранить конфиг сайта в PHP через браузер?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    По существу, это противоречит вообще всему РНР.
    Ничему это особо не противоречит, есть масса механизмов, которые записывают PHP-файлы, которые написаны на PHP. Большая часть CMS, например, пишет собственные конфиги "на лету". PHP-файл не отличается примерно ничем, от того же текстового файла. Интерпретатор PHP может с тем же успехом выполнять файлы с расширением .txt, если в них валидный код.

    Заранее большое спасибо. Было бы не плохо, если бы написали как сохранять ТХТ и как взять от туда данные и впихнуть в РНР.

    Клац.

    P.S. А ещё есть форматы XML, JSON и другие. В которые Вы можете записывать и считывать данные. В т.ч. есть функции json_encode и json_decode, с помощью которых можно кодировать/декодировать JSON-данные, сохраняя/считывая их из текстового файла. И ещё есть serialize, который позволяет сериализовать, например целиком объект/класс.
    Ответ написан
    Комментировать
  • Как удалить кеш старого сайта?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Вопрос. Как научить новый сайт перезаписывать куки и кеш самостоятельно?

    HTTP заголовки, например Set-cookie и/или Cache-control, Expires, и т.д.
    Ответ написан
    Комментировать
  • Как сделать функцию поднятия объявления на php?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Без использования крона. Это связано как то с css?

    Вряд ли... Если речь идёт о каскадных таблицах стилей.

    Это можно сделать например, запустив PHP-скрипт из CLI (т.е. из командной строки, что бы он не прерывался по истечению 30сек., как это обычно происходит). Этот скрипт запускает бесконечный цикл, в котором будет проверять, сколько уже прошло времени и поднимать соотв. объявления/посты наверх.

    Или, при каждом запросе, перед отображением этих самых объявлений, сверять время и если настал час N - поднимать соотв. объявление наверх.

    Это будет:
    а) на PHP
    б) без CRON'а
    Ответ написан
  • В чем смысл обертки для сессий, и чем плохи стандартные сессии в php?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Почему многие не рекомендуют пользоваться встроенными сессиями в php?
    В виду особенностей их работы и коллектора мусора. Можно станартные сессии завернуть в Redis. Тогда большая часть проблем решается. В прошлом году, обсуждали проблему, когда из-за переполнения диска файлами сессий - сервер упал.

    Какой смысл в обертке?
    Обёртка по природе своей более нативная для системы, в которой она применяется. Не факт, что эта обёртка не использует стандартные сессии, но чаще всего это именно так. Плюс, обёртка обычно может предоставлять какие-то дополнительные функции...

    Или например, хранение сессий в базе (или в Redis'е) - исключает вероятность переполнения диска этими файлами.
    Ответ написан
    5 комментариев
  • Сколько ОЗУ на VPS потребуется?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Хватит ли оставшейся оперативки если установлю apache + php + mysql?

    Для того, что бы оно запустилось - думаю хватит.

    Нагрузка на сервер предполагается мизерной — бот на php для telegram.

    Зачем Вам Apache или вообще веб-сервер? Запускайте скрипт из консоли. Можете попробовать встроенный в ПХП веб-сервер.

    При жесткой необходимости можно отказаться от mysql и хранить данные в файлах.

    При жесткой необходимости, и в её отсутствие тоже, можно отказаться от MySQL и хранить данные в SQlite3.

    P.S.
    панель показывает: 120.2 MB of 256 MB Used / 135.8 MB Free
    Единственное, что меня смущает - как и зачем Вы умудрились панель вкрутить на сервер с 256Мб оперативки :)) Но... это в принципе к делу не относится, просто мысли вслух.
    Ответ написан
    6 комментариев
  • Что это означает Warning: 1265 Data truncated for column?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Мне кажется, у меня есть ответ на Ваш вопрос... Или вот.
    Ответ написан
  • Где ошибка в SQL запросе?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Где синтаксическая ошибка в запросе?

    Скорее всего, ошибка в "***" в имени таблицы и в отсутствии запятых, после SET.
    Ответ написан
    Комментировать
  • Как реализовать таймер на php?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    ну так на вскидку, решение в лоб:
    $nullFlag = true;
    if($time > 12:00 && < 13:00 && $nullFlag) {
        //обнуляем массив
        $nullFlag = false;
    } elseif ($time > 13:00) {
        $nullFlag = true;
    }

    но это прям такое, топорное решение (код - условный, иллюстрирует исключительно идею).

    Можно ещё создавать файл на диске где-то, по cron'у (раз в сутки) и делать например так:
    $file_path = "/home/daemon/clear_array.do";
    if(file_exists($file_path)) {
        //Очивщаем массив
        unlink($file_path);
    }


    Основная проблема в том, что я не могу придумать так вот сходу, как расшарить данные во вне, с работающего нон-стоп скрипта, на PHP. Это всё-таки не С++...

    Ещё можно попробовать хранить этот массив в Redis, или memcached, и вычищать его оттуда раз в сутки, и при каждой необходимости - считывать его (массив) оттуда. Или сериализовывать его и сохранять на диск.

    Если кто-то подскажет, как кусок памяти на ПХП расшарить, я думаю, будет более оптимальное решение.

    Можно ещё попробовать вебсокет на ПХП открыть, и при поступлении соотв. команды - очищать массив. Но я сам веб-сокеты в ПХП-реализации не пробовал и не могу к сожалению, подсказать Вам, как это будет выглядеть.

    P.S. Реализацию с файлом, можно заменить на запись в БД или в Redis/Memcached. Т.е. проверять не наличие файла, а наличие записи. Кстати да, Redis имеет такой параметр как "срок хранения кэша", в этом случае, даже CRON будет не нужен. Наверняка, что-то такое и в memcached есть.
    Ответ написан
    2 комментария
  • Каким образом реализовать удаление записи из БД?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Порядок действий такой:
    1. Берём inotify
    2. Ставим на мониторинг нужную папку
    3. При наступлении события "файл N удалён" запускаем скрипт, который будет удалять соотв. запись из БД
    4. Enjoy!
    Ответ написан
    6 комментариев
  • Как задать время существования сессии?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    А что Вам тогда нужно? ID-сессии храниться в куках браузера, данные сессии, привязанные к "этому" ID - хранятся на сервере в виде текстового файла, похожего на JSON-формат (предположительно, это сериализованные PHP данные). Минимальное время жизни сессии и прочие параметры задаются либо в php.ini, либо на этапе выполнения скрипта (в зависимости от типа параметров и прочих настроек).

    Можно попробовать время жизни куков сессии в браузере проверить/изменить, но про это Вы знаете, как я понял...
    Ответ написан
    Комментировать