Задать вопрос
  • Какова должна быть правильная архитектура парсера на PHP?

    SilenceOfWinter
    @SilenceOfWinter Куратор тега PHP
    та еще зажигалка...
    Для начала бы хоть объяснил что именно ты парсишь.
    А если понадобится писать не в базу, а в файл, писать Parser2?

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

    Для перечислений можно использовать Enum, это подойдёт для TextAlign.
    Для других кейсов можно использовать ValueObject с валидацией в конструкторе.
    Ответ написан
    9 комментариев
  • Пытаюсь запросить данные из MySQL через PHP. Где ошибка?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Выводится только "соединение установлено", а так - ничего
    Во первых - включить вывод ошибок, в логи же вы не смотрите...
    Во вторых - куча ошибок, непонятно откуда вообще появившихся. Все плохо.
    $link = mysqli_query($link, "SELECT * FROM 'table-name' WHERE USER_ID = 1620");
    Сам линк зачем-то затирается результатом выполнения запроса, внутри запроса имя таблицы зачем-то в кавычках (либо убрать, либо использовать обратные кавычки), потом вообще повтор и бред -
    $query = "SELECT * FROM 'table-name' WHERE USER_ID = 1620"; //снова кривой запрос, теперь уже в переменной, зачем?
    $result1 = mysqli_query($link, $query) or die(mysqli_error($link)); //Линк тут уже заменен результатом выборки, 
    //так что там не ресурс подключения, но варнинги мы не смотрим, так что пофиг же, да?

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

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    Не придумывайте велосипед. Просто посмотрите как решают подобные вещи в других проектах, например git diff. В результате у вас будет аж 3 варианта использования:
    1. использовать уже готовый продукт (например тот же git-diff) как консольную утилиту
    2. использовать уже готовую библиотеку, решающую данный вопрос, подключив ее к своему коду
    3. посмотреть код уже готовых продуктов и либо использовать его, либо на основе написать свой
    Ответ написан
    Комментировать
  • Нормален ли такой код?

    @rPman
    'магические константы' - что такое 9 или 10?, мне то понятно но чтобы их понимать нужно изучать код, размеры области нужно определить в переменные или константы, приучаться надо с самого начала к тому чтобы такого не было. То же самое с символами кнопок управления, определи для них переменные, пусть сначала это будут константы, заданные в коде, зато позже будет проще сделать изменяемые настройки.

    Отсюда кстати баг, ширина у тебя при определении буфера карты определена как 20 а при заполнении экрана - 'стенками' забита строкой в 10 (хотя ожидалось что будет еще один цикл, заполняющий посимвольно строку).

    Правильно - определить буфер как содержимое стенок # и заполнить его однократно вне игрового цикла (тут можно и другие препятствия расставить, например сделать лабиринт), не важно константами или алгоритмом.

    А в бесконечном цикле просто выводить содержимое map и уже во время вывода проверять x,y положения 'игрока' и выводить его на экран вместо символа карты. Достоинство такого подхода - карта может состоять не только из символов стенок но и любых других, проходимых.

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

    Следующим шагом x,y определи структурой, если продолжать дальше, в идеологии объектного программирования (да я вижу что это С, но простой вызов метода у структуры/класса сделать можно) в этой структуре определи функции, описывающие действия над персонажем (обработка действий - там функция что разбирает нажатые клавиши, только по логике нав ход должны подаваться не клавиши а константы, определяющие действие, вывод на экран - вернет символ, проверку проходимости точки на карте, т.е. стены, и т.п.) тогда будет проще добавить к примеру второго игрока или NPC и т.п.
    Ответ написан
    4 комментария
  • В чём отличие результатов кодировок `encodeURI`, `encodeURIComponent` и `application/x-www-form-urlencoded`?

    @alexalexes
    Отличия в охвате специальных символов, которые подвергаются конвертированию.
    Функция encodeURI меньше охватывает символов, а функция encodeURIComponent - больше.
    Но ни та, ни другая не достигает стандарта RFC 3986, чтобы считаться полностью правильно закодированным в вид контента application/x-www-form-urlencoded (смотрите документацию по encodeURI).

    PS: Со стороны php сервера такая же история. Есть urlencode/urldecode - которые неполные по RFC 3986, а есть rawurlencode/rawurldecode - которые полностью удовлетворяют стандарту RFC 3986. При кастомном конструировании http пакетов предпочтительно использовать последние.
    Ответ написан
    1 комментарий
  • Как сортировать такой массив?

    Adamos
    @Adamos
    Написать функцию сравнения, которая сначала сравнивает позиции валют в предопределенном списке, а при их равенстве - второе значение.
    И использовать штатную функцию сортировки массива с пользовательской функцией.
    Ответ написан
    Комментировать
  • При компилировании ошибка undefined reference to?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    Подключены заголовки, а не библиотеки. Чтобы подключить библиотеки, нужно добавить -lpthread как минимум к команде компиляции
    Ответ написан
    Комментировать
  • Как установить Windows после Linux?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    ничего windows всегда была царем горы и не предполагала соседей
    Ответ написан
    Комментировать
  • Как получить все теги в html или xml?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    3 комментария
  • Как отнять в php одно время от другого, если изначально значения времени являются строками?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    print DateTime::createFromFormat('H:i', '15:00')
        ->diff(DateTime::createFromFormat('H:i', '14:30'))
        ->format('%H:%i');
    // 00:30
    Ответ написан
    Комментировать
  • Как записать в fastcgi_param якорь?

    Lynn
    @Lynn
    nginx, js, css
    Никак. Якоря не передаются на сервер.
    Ответ написан
    Комментировать
  • На чем лучше сделать динамический сайт с админ панелью, с добавлением товаров?

    Sanes
    @Sanes
    На чем умеешь, на том и будет быстрей. Либо CMS.
    Ответ написан
    Комментировать
  • Как корректно использовать exec() в PHP?

    @Akela_wolf
    Extreme Programmer
    Утилита screen нужна только для терминала (чтобы процесс не убился когда закроете терминал)
    Команда cd - команда шелла (изменить текущую директорию)

    Так что вам, на самом деле, нужна единственная команда для запуска сервера: srv/start.sh

    Если же все-таки нужно выполнить несколько команд, то для этого нужен запуск шелла: /bin/sh -c 'cmd1 && cmd2 && cmd3 && ... etc ...'

    Еще можете посмотреть функцию PHP shell_exec
    Ответ написан
    Комментировать
  • 500 Internal Server Error .htaccess, что делать?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    разбить файл на условные блоки и отключать по кускам, пока не заработает. Скорее всего какой-то из плагинов просто не установлен на сервере.

    Так же для совместимости обычно используют директиву условного подключения, например так:
    <IfModule mod_rewrite.c>
    Ответ написан
    Комментировать
  • Как исправить ошибку лимита 100мб гитхаб?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Git это модульная система. Некоторые компоненты нужно устанавливать дополнительно, в том числе Git LFS for GitHub

    Но зачем ты пихаешь в репозиторий архивы с резервными копиями?
    Ответ написан
    Комментировать
  • В чем ошибка моего кода?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    Ну тут явно есть какое-то решенице
    Ответ написан
    1 комментарий
  • Как вывести в переменную данные из file_get_contents?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ошибка в использовании регулярок вместо нормального разбора XML, например через SimpleXML.
    В регулярке потенциальная ошибка в жадности. Если будет несколько записей product_name, то у вас выберутся все.
    Ну и вы берёте $product_name[0], а там лежит полное совпадение с регуляркой. Найденная подстрока находится в $product_name[1].
    Ответ написан
    1 комментарий
  • Как вывести в переменную данные из file_get_contents?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) при чем тут "вывести в переменную данные из file_get_contents"?
    2) все выводится, ищите ошибку в другом месте
    3) Если вы получаете xml, то зачем вам регулярки, есть средства, предназначенные для работы с xml
    Ответ написан
    Комментировать