Задать вопрос
  • Как записать данные формы в файл?

    alsopub
    @alsopub
    1) Записывать данные только если $_SERVER{'REQUEST_METHOD'} == 'POST'
    2) Можно сделать сделать не особо усложняя - после записи в файл сделать header('Location: /path/to/form.php');
    В этом случае после записи сработает редирект и F5 не приведет к повторной отправке формы.
    Ответ написан
    Комментировать
  • Верен ли такой подход к изучению программирования?

    Denormalization
    @Denormalization
    В современном мире 80% задач решается копипастом чужого кода и небольшой правкой. (Британские учены доказали).
    Для типовых задач уже давно существуют готовые решения. Не нужно изобретать велосипеды, а тем более комплексовать из-за этого.

    Вам же стоит не просто копировать чужой код и разбираться в нем, но и попробовать его воспроизвести.
    Т.е как-то так:
    - Копипастим
    - Разбираемся почему и как оно работает
    - Удаляем все, создаем новый проект и пишем все с нуля без подсказок (ручками).

    Такой подход будет более эффективен.

    Но все люди разные, и каждый обучается так, как ему удобно. Если вы считаете что вы хорошо усваиваете материал подобным образом, то ничего страшного в этом нету. Просто попробуйте воспроизвести результат с нуля, и если у вас получится - вы действительно усвоили как это делать.
    Ответ написан
    3 комментария
  • Где можно следить за тенденциями в веб?

    Machinez
    @Machinez
    читайте еженедельные дайджесты по веб-разработке на хабре - очень полезно
    https://habrahabr.ru/company/zfort/blog/282325/
    Ответ написан
    Комментировать
  • Как в текущей реальности воспринимают контент статьи?

    @lakegull
    Что значит "типичный юзер"?

    Определите свою целевую аудиторию. Возраст, пол, круг интересов, уровень дохода и т.д.
    Ответ написан
    Комментировать
  • ON DUPLICATE KEY UPDATE не работает, что делать?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    CREATE TABLE `users` (
     `steamid` varchar(255) NOT NULL,
     `nickname` text NOT NULL,
     `joined` text NOT NULL,
     `balance` text NOT NULL,
     `totalBought` text NOT NULL,
     `banned` text NOT NULL,
     `admin` int(11) NOT NULL,
     PRIMARY KEY (`steamid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    Ответ написан
    1 комментарий
  • Почему такая разница в рейтинге языков программирования?

    @Maa-Kut
    Разница из-за различных методик сбора данных. Рейтинг TIOBE строится на подсчете количества поисковых запросов, содержащих название языка (https://ru.wikipedia.org/wiki/Индекс_TIOBE). Github, полагаю, ориентируется на количество коммитов в проекты, написанные на соответствующих ЯП. Stackoverflow, скорее всего, ориентируется на теги.

    Особо зацикливаться на эти рейтинги, честно говоря, не вижу нужды; максимум, на что они годны - это служить аргументом в разных фаллометрических баталиях на тему "ЯП1 vs ЯП2". В реальной жизни лучше ориентироваться на количество/качество предлагаемых вакансий (если хочется программировать профессионально) или на личные предпочтения (если хочется программировать "для души").
    Ответ написан
    3 комментария
  • Почему ни один конструктор регулярных выражений не понимает это?

    DevMan
    @DevMan
    потому что конструкторы обычно используют формат /regex/, и ваша регулярка вылетает из-за непроэкранированных слешей.
    ^\/forum(\/[\d\w_\/\-]+\/)([\d]+)\.xhtml
    Ответ написан
    Комментировать
  • Вопрос по подключению системы кэширования?

    @mantyr
    Пишу много Golang кода с удовольствием:)
    Почитайте, optimization.guide и вот вам немного теории:

    Кешировать можно:
    • целиком всю страницу (для каждой страницы своя запись в кеше)
    • отдельные части сайта


    Кешировать можно в файлах:
    • генераруя готового html
    • генерируя html+php, так работают smarty и прочие шаблонизаторы собирая множество шаблонов в один
    • в виде бинарного содержимого, сюда и готовый html и готовые значения вычислений и прочее
    • в виде сериализованного массива с чем угодно, от предыдущего пункта отличается только форматом хранения


    Кешировать можно в базе:
    • в mysql/postgresql и прочих SQL - будет храниться на диске и горячие данные в памяти
    • в mysql/postgresql и прочих SQL в in-memory таблицах - будет храниться в оперативке, но без дополнительных усилий кеш пропадёт при рестарте сервера
    • в in-memory базах данных, часто это memcache, redis и прочее - опять таки выключили сервер - данные пропали
    • в in-memory базах данных с сохранением на диск, это Tarantool, memcachedb и прочие если там заявлена такая функциональность


    Так же можно:
    • кешировать всё кроме вставок динамики
    • кешировать куски вставляя их в динамику

    Это два противоположных подхода которые при особом желании можно смешивать в рамках одного проекта.

    Обновлять кеш можно:
    • при каждом запросе проверяя что старый кеш устарел
    • предкеширование - отдельным кроном/демоном/сервисом генерировать кеш раз в N минут
    • по мере изменения данных сбрасывать кеш и следующий запрос сгенерирует новый
    • по мере изменения данных сбрасывать кеш путём генерации сразу нового и замены старого на новый


    Кеш можно хранить:
    • на том же сервере что и сайт - нет задержек в сети, но зато ресурсы теже, CPU, диск, оперативная память
    • на внешнем сервере - задержки в сети, зато ресурсы отдельно


    Можно совмещать разные виды кеширования для разных данных. Можно кешировать только результат работы функций (вычисления, данные), а шаблоны не трогать, можно вместе с шаблонами, но тогда каждое изменение шаблонов повлечёт сброс всего кеша где он участвует.

    Если используете CMS/CMF - посмотрите готовые плагины для кеширования. Если у вас не sharing-хостинг с мини-сайтом - озаботтесь профилированием (xhproof) и мониторингом, это поможет понять где и что кешировать.

    Так же стоит рассмотреть кэширование байт-кода:
    • OpCache
    • APC
    • XCache

    Стоит прочитать вот эту статью:
    Сравнение скорости исполнения кода Drupal для PHP 5.3-5.6 и 7.0. «Битва оптимизаторов кода» apc vs xcache vs opcache https://habrahabr.ru/post/264775/

    Так же стоит:
    • увеличить буферы в MySQL (если памяти много)
    • потюнить другие системы, например поставить nginx вместо apache, раздавать статику с другого хоста
    • и конечно же - посмотреть как долго работают SQL запросы и по возможности их облегчить


    Кеширование в MySQL с использованием HandlerSocket:
    • данные хранятся в MySQL innodb базе, а значит чтение и запись можно делать как по старинке через SQL так и через HandlerSocket
    • можно сделать любое количество колонок, лишь бы это позволял MySQL
    • быстрая вставка
    • быстрая выборка
    • бинарный протокол передачи данных
    • есть несколько библиотек для PHP, как относительно новых так и старых
    • в Percona Server (форк MySQL) HandlerSocket.so есть в поставке по умолчанию, разве что нужно включить
    • в MySQL необходимо собрать HandlerSocket самостоятельно и включить в MySQL


    Можно почитать вот тут:
    Ответ написан
    3 комментария
  • Как на PHP или mysql запросом изменить названия полей сопоставив им нужные id?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Лучше в команды добавьте новое поле для id стадиона, всё равно ведь тип поля менять, а поле названия потом удалите. Когда проверите, что id заполнены верно и для всех строк.

    update команды join стадионы on стадион=стадионы.название set стадионid = стадионы.id
    Ответ написан
    Комментировать
  • Сделать один массив из двух вложенных на PHP?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Зайдите и прочитаете за 15 минут все функции с массивами в php www.php.su/functions/?cat=array
    Одна из них Вам идеально подходит, но не скажу какая, что бы реже видеть подобные вопросы.
    Ответ написан
    Комментировать
  • Есть ли косяки в роутинге?

    @IceJOKER
    Web/Android developer
    Лень читать тело методов, но мне не нравится конструктор, не перегружайте его лишними данными, он обычно служит для инициализации переменных и т.д. остальную логику перенесите в методы, так легче будет поддерживать код
    Ответ написан
    Комментировать
  • Как обновить данные после ajax?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    При отправки через ajax вам приходит ответ, событие success. Вот в нем и обновляйте. Мало того Вы же знаете что при клике +1 будет именно +1. Значит можно найти то что было и увеличить на единицу или уменьшить еще до ajax. Или в success если хотите быть уверены, что записалось.
    Ответ написан
    Комментировать
  • Как переслать 10ТБ в Китай?

    @Tabletko
    никого не трогаю, починяю примус
    По-моему, проще будет переслать пару жестких дисков почтой.
    Ответ написан
    8 комментариев
  • Как вывести данные из многомерного массива в таблицу?

    @Silm
    Для начала научитесь создавать эти самые массивы. У вас полный шлак.

    <?php
    $arr = [
        ['firsname' => 'Иван', 'lastname' => 'Иванов'],
        ['firsname' => 'Петр', 'lastname' => 'Петров'],
        ['firsname' => 'Сергей', 'lastname' => 'Сергеев'],
    ]
    ?>
    
    <table>
    <tr><th>ID</th><th>Имя</th><th>Фамилия</th></tr>
    <?php foreach($arr as $key => $person): ?>
      <tr>
      <td><?=$key?></td>
      <td><?=$person['firsname']?></td>
      <td><?=$person['lastname']?></td>
      </tr>
    <?php endforeach ?>
    </table>
    Ответ написан
    4 комментария
  • Как сделать результат выборки уникальным?

    thewind
    @thewind
    php программист, front / backend developer
    1) GROUP BY worker
    2) GROUP_CONCAT(d_name SEPARATOR ',')

    SELECT worker, GROUP_CONCAT(d_name SEPARATOR ',') FROM workday GROUP BY worker
    Ответ написан
    Комментировать
  • Как измерить площадь объекта по фотографии?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Белый фон. Контрастная с цветом шкуры сетка на фоне. Сверху шкура.
    Анализируем картинку, считаем количество квадратиков которые закрывает шкура.
    Если нужна повышенная точность - отдельно анализируем частично закрытые квадраты.
    Ответ написан
  • Как расшифровать, как работает этот говнороутер?

    streetflush
    @streetflush
    Перепишите этот небезопасный код и сделайте его параметризуемым, как у вас в задаче.
    Ответ написан
    Комментировать
  • Что делает присвоение в условии?

    riot26
    @riot26
    <:З )~~
    https://habrahabr.ru/post/141746/
    читать вместе с комментами
    Ответ написан
    Комментировать