- писать всем пользователям о подключении их самих – сами пользователи знают, когда заходят и заход тогда, когда ты это делать не мог – есть повод обеспокоиться
- админу писать о подключении всех пользователей, имеющих права на sudo
Category: Coding
Динамическое формирование окончания слов во множественном числе
Достаточно для анализа 10 символов чтобы делать правильное окончание.
Метод на ruby:
def spelling(number) last_digit = number.to_s.split(//).last(1).join # identify last digit spell = "" if last_digit == "1" spell = "а" if last_digit =~ /^([2-4])$/ spell = "ов" if last_digit =~ /^([0]|[5-9])$/ two_last_digit = number.to_s.split(//).last(2).joinЧитать дальше
Редирект на изначально запрашиваемую страницу после авторизации на базе PHP
Redirect делается обычно на основе запрашиваемого URL из переменной $_SERVER[‘REQUEST_URI’], далее назовем это query URL.
Первоначально редиректим на страницу авторизации с указанием запрашиваемого url из query URL в переменной location.
header("Location:login.php?location=" . $_SERVER['REQUEST_URI'] );
Уже на странице авторизации после успешной авторизации делаем тоже самое – забираем query URL. Читать дальше
PHP: разное
-
В 1995 году (году создания Java) программист Расмус Лердорф создал язык PHP (Hypertext PreProcessor). Разработка этих языков значительно ускорила развитие всемирной сети и веб-браузеров — Java обеспечила кроссплатформенность и масштабируемость, а PHP стал фундаментом для тысяч веб-сайтов — примерно три четверти из них используют PHP.
PHP: работа с БД Oracle используя расширение oci8 в Ubuntu 14.04
Install
sudo apt-get install php-pear php-xml php7.0-xml php7.0-dev sudo apt-get install pecl
sudo pecl install oci8 instantclient,/usr/lib/oracle/<ver>/client64/lib
PHP: установка php7 на ubuntu 14.04, CentOS 7
PHP7
Является самой актуальной (если не брать во внимание dev версию php 8) и производительной версией php.
Ubuntu 14.04
Установка php7 на Ubuntu 14.04 делается через предварительное добавление app-репозитория ppa:ondrej/php.
sudo apt-get install python-software-properties software-properties-common sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php sudo apt-get update
Далее удаляем опционально php5 (Purge удалит и конфигурационные файлы). Читать дальше
PHP serialize и json
PHP serialize – метод превращения данных (строки, массива) в байт строку с возможностью последующего извлечения через unserialize. Ранее был популярен, но сейчас лучше использовать json:
- serialize работает только в php
- serialize из коробки имеет проблемы со спец. символами (пример ниже)
Ошибка “Notice: unserialize(): Error at offset 454707 of 455688 bytes in”
Варианты решения:
- переделать на json – самый простой и эффективный на практике
- использовать DECOCE – учитываем, что не работает с array
- использовать REGEXP для удаления “плохих” символов массово – можно потерять часть данных
- искать символ(ы) по значению байта (455688) на которые ругается serialize через dd, sql в базу и прочие шаманства и удалять их направленно
json – по сути аналог serialize, только более стандартизирован и стабилен. Читать дальше
PHP: простая файловая шара (upload, download, delete, open)
DOWNLOAD/OPEN
При генерации файла обязательно делаем скобки вокруг “file_name”, иначе в случае если в имени файла есть пробел firefox будет показывать только первое слово, хотя другие браузеры этим страдать не будут. Mozilla давно сказала, что исправлять это не будет т.к. такое поведение соответствует RFC. Читать дальше
phantomjs – парсинг web с поддержкой js
-
- (macbook, phamtomjs) На macook и ios можно запускать shortcuts, там писать код (ниже пример с выгрузкой страницы html с запуском js!) и автоматизировать запуск (на ios через сами shortcuts, на macbook через cron/shorty)
crontsb -l */2 * * * * /Users/rpv/lesta_shortcut.sh
PHP библиотека PHPExcel для работы с Excel
Для работы с Excel использовал библиотеку PHPExcel. Установка простейшая – кладем папку Classes в нужную папку на сервере, указываем корректные пути в include/require.
Примеры кода по чтению/генерации файлов Excel можно посмотреть на github странице библиотеки.
Красивости
и этим не ограничивается функционал, это лишь то, что использовал:
- mergeCells(“cell_range”) – Объединение указанных ячеек в одну.
