• Как поменять кодировку таблицы в phpMyAdmin?

    В редактировании поля:

    + в настройках самой таблицы:
    Ответ написан
    3 комментария
  • PHP, ООП. Практическое изучение

    shushu
    @shushu
    Простенькая задачка: Напишите шахматы :)
    Без AI. Должно проверятся допустимый ли ход для данной фигуры. Должно быть как минимум одно наследование.
    Ответ написан
    1 комментарий
  • PHP, ООП. Практическое изучение

    Любую задачу (решаемую в принципе) можно реализовать как с ООП, так и без него (в процедурном стиле, например). «Прелести» ООП лучше всего чувствуются на больших проектах, где невозможно держать в голове все (глобальные) переменные и функции и способы их взаимодействия и приходишь к пониманию необходимости использовать более высокие уровни абстракции, чем отдельные значения и классические массивы из них. Начинаешь объединять семантически связанные данные в структуры (ассоциативные массивы в PHP), а функциям с ними работающим давать имена с префиксом (обычно) в виде названия (чисто семантическое) этих структур, чтобы хоть немного упорядочить глобальное пространство имён, получая функции вида user_login(array $user, $login, $password), user_logout(array $user) и user_is_logged(array $user). До простейшего ООП осталось сделать один шаг — перенести и функции (указатели на них в С, callback/имена в PHP) в эти структуры, но синтаксис вида call_user_func($user['user_login'], $user, $login, $password) мягко говоря неудобен и избыточен и тут в PHP4 вводят вместо него синтаксис $user->login($login, $password) и без него ты больше не можешь жить :)

    Если же до семантических концепций ООП не дойти на своей шкуре, то разницы между user_login(array $user, $login, $password) и $user->login($login, $password) почти нет, но даже на таком простом примере видно, что запись банально короче и глобальное пространство имён меньше используется, что особенно заметно при использовании IDE с автодополнением.

    Но это философское отступление было о некоторых прелестях ООП. Прямой ответ на вопрос «какую задачу?» — любую интересную хотя бы чуть-чуть. Желательно с развитой предметной областью, в которой ощущается интуитивно наличие нескольких абстракций разного уровня. Если для процедурного приложения вы создаёте несколько таблиц в БД или используете ассоциативные массивы для группировки семантически близких значений — то это, скорее всего, такая задача. Для большего wow-эффекта или просветления можно попробовать написать две версии одного приложения типа блога, одну в процедурном стиле, другую в ООП. Причём в первой желательно не использовать «промежуточные» решения типа ассоциативных массивов даже для mysql_fetch_assoc/array(), только бескомпромиссное mysql_fetch_row(). Если же без ассоциативных массивов вы уже разработки не представляете, то вы уже почти достигли ОО-просветления :)
    Ответ написан
    Комментировать
  • PHP, ООП. Практическое изучение

    Assorium
    @Assorium
    Если совсем базовые знания, то могу поделиться собственным опытом. Мои первые два класса были для работы с БД и обработки изображений.

    Класс БД обеспечивал соединение, создание основных строк-запросов (выбор, вставка, апдейт, удаление), обеспечение многотабличных запросов, обеспечение безопасных запросов (обработка тегов, лишних пробелов, удаление SQL инъекций), сам запрос к БД и обработка результатов. Также класс содержал стат данные, это количество обращений и время выполнения. Пользуюсь им до сих пор, кроме очень сложных запросов к базе.

    Класс изображений обеспечивал (он принимал как одно, так и массив изображений): ресайз изображений, перемещение, crop, отдачу статданных по цветности, цветам, заполненности, перевод изображения в ч/б, добавление watermark, добавление различных элементов и даже начал писать обработчик-аппроксиматор функций. В принципе по сложности и углубленности в понимании ООП он не отличается от первого, но в дальнейшем я не изменяя этого класса, написал класс-наследник, который обрабатывал все типы изображений. Сделал это только для того, чтобы попробовать наследование ручками, на самом деле помогло не рыться в старом коде, а просто зная подход, чуть чуть подкорректировать новый.
    Ответ написан
    Комментировать
  • С чего начать web-программирование?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Чисто HTML учить смысла нету. Тут надо азы верстки знать. htmlbook.ru — там есть неплохие статьи, по ним можно начать.

    Так же придется выбрать язык программирования, с этим довольно сложно. Я помниться PHP выбрал только потому, что о существовании других как-то и не задумывался. Да и порог вхождения достаточно низкий.

    Само же программирование… Самый действенный вариант — сразу же поставить себе сверх задачу (например написание своего фреймворка или CMS на базе фреймворка (желательно своего). Написание велосипедов с последующим анализом (или с предварительным) существующих достаточно неплохо повышают опыт)

    Ну а так, когда есть задача — надо пытаться разбить ее на подзадачи и решать. В конечном итоге знания сами будут появляться (посредствам гугла по большей части). Попытки что-то реализовать советую совмещать с анализом готовых решений.

    Причем первые варианты можно реализовывать без использования ООП, но в конечном итоге оно само придет. Ну или же функциональное программирование, но тут уже религиозный спор.
    Ответ написан
    1 комментарий
  • java кодировка из windows-1251 в utf-8

    apangin
    @apangin
    Вы из потока уже не в той кодировке читаете.
    Надо создать правильный InputStreamReader:
    InputStreamReader isr = new InputStreamReader(conn.getInputStream(), "windows-1251");
    BufferedReader br = new BufferedReader(isr);
    
    Ответ написан
    3 комментария