PHP: работа с БД Oracle используя расширение oci8 в Ubuntu 14.04

Install
Установка расширения Oci8 для работы с БД Oracle.
Ставим pecl.
sudo apt-get install php-pear php-xml php7.0-xml php7.0-dev 
sudo apt-get install pecl
Через pecl ставим Oci8. При установке указываем путь в oracle lib.
sudo pecl install oci8 
instantclient,/usr/lib/oracle/<ver>/client64/lib
Добавляем extension в php.ini.


Читать дальше

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 удалит и конфигурационные файлы).

Читать дальше

D-Link: разное

DDM. Считаю бред делать опцию shutdown для DDM по умолчанию включенной (при сильном затухании кладу порт). Понятно, что есть в этом логика – переключение на резерв, но с чего разрабы взяли, что везде есть резерв?

Читать дальше

Excel: как заменить множество ячеек сохранив значения старых

Задача по подобной замене возникает довольно часто: получили отчет с результатами, но нужно изменить/добавить данные в большом количестве ячеек, оставив все в одном столбце и не трогая старые данные.

Просто выставить фильтр и вставить новые данные не получится т.к. вставка в Excel происходит построчно во все ячейки, а не только в зафильтрованные.

Читать дальше

Философия Слободина

Очень правильные мысли из постов Слободина о его коррупционной истории. Не буду судить о виновности, но то что мужик грамотно пишет/думает – определенно.

https://medium.com/@Myslobodin/true-story-second-part-214a7723d902
https://medium.com/@Myslobodin/true-story-third-part-f3fd9868ca65

1) Важность презумпции невиновности.

Нормальная судебная система основана на презумпции невиновности. И если кто-то кого-то обвиняет , то именно он должен доказать виновность.


Читать дальше

PHP serialize и json

PHP serialize – метод превращения данных (строки, массива) в байт строку с возможностью последующего извлечения через unserialize. Ранее был популярен, но сейчас лучше использовать json:

  1. serialize работает только в php
  2. serialize из коробки имеет проблемы со спец. символами (пример ниже)

Ошибка “Notice: unserialize(): Error at offset 454707 of 455688 bytes in”

Варианты решения:

  1. переделать на json – самый простой и эффективный на практике
  2. использовать DECOCE – учитываем, что не работает с array
  3. использовать REGEXP для удаления “плохих” символов массово – можно потерять часть данных
  4. искать символ(ы)  по значению байта (455688) на которые ругается serialize через dd, sql в базу и прочие шаманства и удалять их направленно

json – по сути аналог serialize, только более стандартизирован и стабилен.

Читать дальше

PHP: простая файловая шара (upload, download, delete, open)

DOWNLOAD/OPEN

При генерации файла обязательно делаем скобки вокруг “file_name”, иначе в случае если в имени файла есть пробел firefox будет показывать только первое слово, хотя другие браузеры этим страдать не будут. Mozilla давно сказала, что исправлять это не будет т.к. такое поведение соответствует RFC.

Читать дальше

Oracle DB: разные хинты

использование sqlldr для загрузки данных в базу

sqlldr  – SQL*Loader. Позволяет загружать данные в базу из файла, например csv. Пример использования есть тут.

По умолчанию для работы пользователя с sqlldr пользователя нужно добавить в группу dba или запускать sqlldr из под sudo.

Читать дальше