PHP: полезные функции

http://www.w3schools.com/  – очень хороший сайт по WEB-программированию. Охватывает огромное количество языков и технологий – HTML, CSS, JS, SQL, PHP, JSON, AJAX, etc

REGEXP
preg_grep – для поиска в array по regexp
preg_match – для поиска в string по regexp
$matches = preg_grep (“/Комментарий/”, $comments) – Поиск по regexp в array и вывод value.


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

Динамическое формирование окончания слов во множественном числе

Достаточно для анализа 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: работа с БД 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 удалит и конфигурационные файлы).

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

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.

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

phantomjs – парсинг web с поддержкой js

Зачем
В отличии от mechanize, который очень удобен и функционален, phantomjs, судя прямо из названия, поддерживает исполнение javascript без установки браузера.
Установка
Устанавливать проще всего через apt-get/yum. Можно так же скачать пакет с сайта, плюсом будет самая свежая версия пакета.


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

Несколько полезных JavaScript

confirm при нажатии на кнопку

Например кнопку “удалить” в файловой шаре.

echo "<td><button type=submit name=file_dlt value=\"$file\" onclick=\"return confirm('Вы уверены?')\">Удалить</button></td>";
Добавление строки в таблицу по OnClick

Стырено отсюда. Причем штука настолько крутая, что копирует весь html от строки родителя – значения полей (в моем кейсе хорошо), checkbox, связанные.

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

PHP библиотека PHPExcel для работы с Excel

Для работы с Excel использовал библиотеку PHPExcel. Установка простейшая – кладем папку Classes в нужную папку на сервере, указываем корректные пути в include/require.

Примеры кода по чтению/генерации файлов Excel можно посмотреть на github странице библиотеки.

 

Красивости

и этим не ограничивается функционал, это лишь то, что использовал:

  • mergeCells(“cell_range”) – Объединение указанных ячеек в одну.


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