Archive for the ‘php’ Category

Jelastic.Cloud от Infobox: переход из беты в коммерцию

Пятница, октября 18, 2013

Jelastic.Cloud от Infobox: переход из беты в коммерцию

Infobox завершил бета-тестирование Jelastic.Cloud — облачной платформы нового поколения для размещения сайтов, Java и PHP приложений.

В течение месяца более 1000 человек тестировали новую услугу, оценивая ее преимущества и помогая нам сделать Jelastic.Cloud еще удобнее. И теперь вы наконец-то можете воспользоваться полной коммерческой версией платформы — все ограничения сняты!

Во время бета-тестирования было сделано немало полезных улучшений платформы: в 5 раз уменьшена цена на дисковое пространство (теперь использование 1 ГБ дискового пространства обойдется всего в 0,7 копеек в час, что приблизительно равно 5 рублям в месяц), добавлена возможность использования VDS, поддержка Ruby-окружений и CMS 1С-Битрикс: Корпоративный портал, исправлены ошибки.

Jelastic.Cloud — это облачная платформа, предназначенная для развертывания приложений без необходимости делать сложные настройки серверного окружения (что особенно актуально при работе с капризными к настройкам Java-приложениями) с возможностями автомасштабирования. Это позволяет оптимизировать расходы в момент небольших нагрузок и спокойно переживать наплыв посетителей, например, в периоды акций или рекламных кампаний на вашем сайте.

На Jelastic.Cloud вы легко перенесете ваш сайт за четыре клика или за несколько минут развернете одну из представленных CMS для установки в 1 клик в Облаке.

Помимо CMS, включенных в платформу Jelastic по умолчанию, мы запаковали еще 12 самых популярных CMS, в том числе и российских. При этом мы оптимизировали веб-окружение для каждой из них, добившись максимально возможных результатов. Мы кое-что изменили и в имеющихся в Jelastic пакетах для установки WordPress, Joomla и Drupal, т.к. результат их работы нас устраивал не до конца.
Кроме них мы подготовили пакеты для установки российских 1С-Битрикс в 3-х редакциях, UMI.CMS, Amiro CMS, NetCat, а также MODx, PrestaShop, osCommerce и многие другие. Кстати, сегодня мы предлагаем самый большой в мире каталог CMS для установки в 1 клик на Jelastic. С полным каталогом можно ознакомиться здесь.

Оставайтесь с нами и вас ждет много интересного. Например, уже на этой неделе мы добавим в каталог еще несколько CMS.

Как послать код 404 ошибки php

Среда, августа 14, 2013
header('HTTP/1.1 404 Not Found'); // собственно сам код

header('Location: /404.html'); //редирект на станицу ошибки
 exit(); //ну а это уже на всякий случай, 
//чтобы не происходило выполнение скрипта дальше

Циклы в php

Пятница, сентября 21, 2012

Цикл WHILE


while (логическое_выражение)
инструкция;

или


while (логическое_выражение) {
инструкция1;
инструкция2;
...
инструкцияN;
}

Если логическое_выражение истинно, выполняется тело цикла, в противном случае – переходим на следующий за циклом оператор.

Цикл do while


do
{
тело_цикла;
}
while (логическое_выражение);

После очередной итерации проверяется, истинно ли логическое_выражение, и, если это так, управление передается вновь на начало цикла, в противном случае цикл обрывается.

Форматируем номер телефона

Вторник, ноября 1, 2011

Если номер телефона выглядит 89235005355, то читать его не удобно, а если 8-923-500-53-55 то прочитать его гораздо легче.

Добиться нормального отображения телефона можно сдледующим образом:

$pnone="89235005355";
$reg="([0-9]{1})([0-9]{3})([0-9]{3})([0-9]{2})([0-9]{2})";
$pat="\\1-\\2-\\3-\\4-\\5";
$newPhone=ereg_replace($reg,$pat,$phone);

то же саме на JavaScript:

var pnone="89235005355";
var reg="([0-9]{1})([0-9]{3})([0-9]{3})([0-9]{2})([0-9]{2})";
var pat="$1-$2-$3-$4-$5";
var newPhone=phone.replace(RegExp(reg),pat));

В обоих случаях в переменной newPhone будет отформатированный номер телефона: 8-923-500-53-55.

Ну и в завершении скажу, что это решение подходит только для федеральных номеров РФ и то если они начинаются с 8 на не с +7.



Округление в php, mySQL и JavaScript

Пятница, сентября 9, 2011

Не редко приходится округлять числа при программировании для веб. Встроенные функции веб-языков позволяют выполнять эту оперцию.

Округление в PHP

Функция round().

Синтаксис:

float round ( float value [, int precision] ) .

Первый параметр всегда обязателен, в нем передается дробное число, второй параметр задает число знаков после запятой, если он не указа то функция возвратит целое число.

Правила округления для функции round соответствую правилам округления в обычной математике, т.е. 3.7 будет округлено до 4, тогда как 4.4 будет округлено до 3.

Функция ceil()

Синтаксис:

float ceil ( float value )

Эта функция округляет число до ближайшего челого числа в большую сторону, т.е. 3.1 и 3.9 будет округлено до 4.

Функция ceil() всегда имеет  только один параметр.

Функция floor();

Синтаксис:

float floor(float value)

В  отличии от функции ceil() эта функция округляет число в меньшую сторону, таким образом, для чисел 3.1 и 3.9 функция floor() вернет 3.

Округление в MySQL

ROUND(число [, точность])  аналог функции round() в php.

TRUNCATE(число) аналог функции ceil() в php.

FLOOR(число)  аналог функции floor() в php.

Округление в JavaScript

Метод round() объекта Math.

Синтаксис:

Math.round(x)

Округляет число подобно функции round() в php без второго параметра.

Метод floor() объекта Math.

Синтаксис:

Math.floor(x)

Округляет число до ближайшего  большего или равного целого числа.

Метод ceil() объекта Math.

Синтаксис:

Math.ceil(x)

Округляет число до ближайшего  меньшего или равного целого числа.

Метод  toFixed(число знаков после запятой)

Для округления в Javascript вещественного числа до N знаков после запятой можно воспользоваться методом toFixed объекта Number:
(3.2489).toFixed(2); //результат 3.24
Math.PI.toFixed(4); //результат 3.1416 – число π с 4 знаками после запятой

Метод toFixed возвращает число в виде строки с заданным числом цифр после запятой.

Метод toPrecision()

Синтаксис:

numObj.toPrecision ([precision])

precision  – Необязательный. Число значащих цифр. Должно быть в диапазоне 1 – 21, включительно.

Округляет число до общего количества цифр вне зависимости: после запятой или нет.

Number("90").toPrecision(4)  // = 90.00
Number("90.1234").toPrecision(4)  // = 90.12

Если указанное значение precision не достижимо обрезанием десятичной части – переводит число в экспоненциальную форму.

Преобразование IP-адресов в PHP и MySQL

Понедельник, апреля 4, 2011

Формат IP-адреса достаточно удобен для человека: четыре цифры, разделенные точками. Однако такой формат очень не удобен при программировании, поэтому IP-адреса преобразуют в обычное число для удобства.

Рассмотрим какие инструменты для этого применяются.

PHP
Функция php ip2long – переводит ip-адрес в число, а php-функция long2ip выполняет обратное преобразование из числа в ip-адрес.
Ip-адрес, преобразованный первой функцией, можно записать в базу данных в числовое поле, что гораздо удобнее и эффективнее по сравнению с символьным типом.

ip2long('2.60.255.255'); //возвратит 37552127.
long2ip( '37552127' ); //возвратит 2.60.255.255.

MySQL
В языке MySQL есть аналог php-функции ip2long, позвозяющий переобразовать ip-адрес в число, это функция MySQL INET_ATON, а обратное преобразование числа в ip-адрес осуществляется с помощью mysql-функции INET_NTOA.

SELECT INET_ATON( '2.60.255.255' ) - возвратит 37552127.
SELECT INET_NTOA( '37552127' )  -возвратит 2.60.255.255.

Функция STR_TO_DATE MySQL

Вторник, февраля 8, 2011

Преобразовывает дату в MySQL формат

SELECT STR_TO_DATE(  “07.02.2011 10:22:43″,  “%d.%m.%Y %H:%i:%s” ) ;

параметры те же что в DATE_FORMAT

Функция DATE_FORMAT MySQL

Вторник, февраля 8, 2011

SELECT DATE_FORMAT(“2011-02-08″,’%d.%m.%Y’);

%M Название месяца (январь…декабрь)

%W Название дня недели (воскресенье…суббота)

%D День месяца с английским суффиксом (0st, 1st, 2nd, 3rd и т.д.)

%Y Год, число, 4 разряда

%y Год, число, 2 разряда

%X Год для недели, где воскресенье считается первым днем недели, число, 4 разряда, используется с ‘%V’

%x Год для недели, где воскресенье считается первым днем недели, число, 4 разряда, используется с ‘%v’

%a Сокращенное наименование дня недели (Вс…Сб)

%d День месяца, число (00..31)

%e День месяца, число (0..31)

%m Месяц, число (00..12)

%c Месяц, число (0..12)

%b Сокращенное наименование месяца (Янв…Дек)

%j День года (001..366)

%H Час (00..23)

%k Час (0..23)

%h Час (01..12)

%I Час (01..12)

%l Час (1..12)

%i Минуты, число (00..59)

%r Время, 12-часовой формат (hh:mm:ss [AP]M)

%T Время, 24-часовой формат (hh:mm:ss)

%S Секунды (00..59)

%sСекунды (00..59)

%p AM или PM

%w День недели (0=воскресенье..6=суббота)

%U Неделя (00..53), где воскресенье считается первым днем недели

%u Неделя (00..53), где понедельник считается первым днем недели

%V Неделя (01..53), где воскресенье считается первым днем недели. Используется с `%X’

%v Неделя (01..53), где понедельник считается первым днем недели. Используется с `%x’

%% Литерал `%’.

Убираем лимит на размер импортируемого файла в PhpMyAdmin

Среда, января 12, 2011

При импорте базы в PhpMyAdmin максимальный размер загружаемого файла по умолчанию равен 2М. Что бы изменить это значение нужно исправить upload_max_filesize в файле php.ini. Однако, этого может быть недостаточно. Если нужное значение больше заданного в переменной post_max_size в том же файле, если нужно можно поменять и его. Но нужно учитывать, что оба этих значения должны быть меньше указанного в memory_limit. И еще: если файл велик, то возможно, для его обработки понадобится много времени, ограничение в переменной max_execution_time может дать отрицательный эффект.

Ну и конечно же, нужно перезапустить apache.

Шапка таблицы в phprtf

Суббота, января 30, 2010

Так получилось, что решения одной задачки мне очень нужно было генерировать файл, который впоследствии легко воспринимался бы в ворде. Использование текстовых файлов исключалось, поскольку, нужны были таблицы.

Используя поисковики, нашел неплохую библиотеку phprtf.

Все работало, генерировалась ртэфка, за одним исключением: ни как не хотел работать повтор шапки таблицы, а было ооооочень нужно.

Заглянув код генерируемого файла увидел, что тэг \trhdr (он то и отвечает за повтор строки на каждой странице) подставляется к каждой ячейке, соответственно, все строки как бы должны повторяться и не повторяется ничего.

Заглянув в иходники библиотеки увидел то место где и происходит вставка этого тэга, а поскольку свойство firstRowHeader класса Table распространяется на всю таблицу, то и подстановка происходит во все строки.

Лечением этого бага является замена куска кода (в файле rtf/Table.php):

if (!empty($this->firstRowHeader)) {
$content .= '\trhdr ';
}

на следующий код:

if ((!empty($this->firstRowHeader))and($row==1)) {
$content .= '\trhdr ';
}

Ну, естественно, после создания талицы в необходимо выставить соответствующий флаг:

$rtf = new Rtf();
$sect = &$rtf->addSection();
$table = &$sect->addTable();
$table->addRows(150, 0);
$table->setFirstRowAsHeader();