Веб-программирование

19:28 → 23.06.2017 326 dignity

Создание миграции:

php yii migrate/create <name>

Создаёт файл с миграцией, который находится в папки "/migrations/", имя файла и класса содержит в начале timestamp.

Подробнее →

19:17 → 23.06.2017 304 dignity

Добавляем в require (файл composer.json):

"require": {
        "doctrine/doctrine-orm-module": "1.1.3"
    }

Подробнее →

19:14 → 23.06.2017 227 dignity

Добавляем зависимость (модуль) в composer:

composer require zendframework/zend-developer-tools:dev-master

Обновляем и устанавливаем модуль через composer:

composer update

Добавляем модуль "ZendDeveloperTools" в:

config/application.config.php

Копируем конфиг файл в автозагрузку классов:

cp /vendor/zendframework/zend-developer-tools/config/zenddevelopertools.local.php /config/autoload/

Подробнее →

19:12 → 23.06.2017 196 dignity

В папки /module создаём новую подпапку "Blog".

Подробнее →

04:04 → 20.06.2017 173 dignity

Мы живем в XXI веке, где информация быстро теряет свою актуальность и чтобы не вводить в заблуждения людей, которые пришли на мой блог через поисковой запрос (и не обратили внимания на дату публикации статьи), я решил написать небольшой скрипт, который берет дату (unixtime) и отнимает от неё 180 дней (6 месяцев) и если статья старше 180 дней, то выводится сообщения "Данная запись старше 180 дней, поэтому могла потерять свою актуальность!", если меньше, то ничего не выводится.

Подробнее →

04:01 → 20.06.2017 231 dignity

Задача:

Есть строка (String), в ней есть разделитель "|".

Нужно поменять слово "Плауэн" на "Франкфурт на Майне".

Подробнее →

03:56 → 20.06.2017 227 dignity

Шлюз: http://r.phpland.org/38/smsaero

PHP-Класс (API) для работы: http://r.phpland.org/39/github-smsaeroapi

Пример использования:

$sms = new Smsaero('test@local.ru', 'password', 'PROVERKA');

echo $sms->send(
    '79001234567',
    'Сообщение с тремя пробелами'
);

Подробнее →

03:54 → 20.06.2017 175 dignity

Часто пользователи регистрируются на сайте, но так и не подтверждают свой E-Mail адрес.

Чтобы исправить это, мы будем выводить ссылку на почтовый сервис, при нажатие на которую пользователь сразу попадает в папку "входящие" своей почты (если он авторизован конечно).

Подробнее →

03:48 → 20.06.2017 178 dignity

Спасибо @demisang за сниппет.

/**
 * Формируем правильное окончание числительного
 *
 * @param integer $num   количество
 * @param string $str1   "один" комментарий
 * @param string $str2   "несколько" (2-4) комментария
 * @param string $str3   "много" комментариев
 * @param bool $num_text если TRUE, то перед числительным будет добавлено и само число
 *                       Например "1 день", если FALSE, то просто "день"
 *
 * @return string правильный вариант
 */
function WE($num, $str1, $str2, $str3, $num_text = true) {

    $val = $num % 100;
 
    if ($val > 10 && $val < 20) {
        return $num_text ? $num . ' ' . $str3 : $str3;
    } else {

        $val = $num % 10;

        if ($val == 1) {
            return $num_text ? $num . ' ' . $str1 : $str1;
        } elseif ($val > 1 && $val < 5) {
            return $num_text ? $num . ' ' . $str2 : $str2;
        } else {
            return $num_text ? $num . ' ' . $str3 : $str3;
        }

    }
}

Пример использования:

echo WE($num, 'день', 'дня', 'дней');

Подробнее →

03:42 → 20.06.2017 319 dignity
function shortText(array $article)
{

    // обращаемся к элементу content массива articles
    $res = $article["content"];

    // если content больше 50 символов
    if (strlen($res) > 50) {

        // обрезаем после 50 символов
        $res = substr($article["content"], 0, 50);

        // разбиваем строку по пробелу
        $temp = explode(' ', $res);

        // удаляем последний элемент
        unset($temp[count($temp) - 1]);

        // соеденяем массив $temp и в конец добавляем ...
        $res = implode(' ', $temp) . "...";

    }

    return $res;
}

Вариант 2

function mbCutString($str, $length, $postfix='...', $encoding='UTF-8')
{

    if (mb_strlen($str, $encoding) <= $length) {
        return $str;
    }
  
    $tmp = mb_substr($str, 0, $length, $encoding);

    return mb_substr($tmp, 0, mb_strripos($tmp, ' ', 0, $encoding), $encoding) . $postfix;

}

Подробнее →