Некоторое время назад в обзоре PHP-библиотек для работы с Excel упоминалась библиотека phpexcel
1 Форматирование текста в PHPEXCEL внутри ячейки несколькими способами (форматирование части текста в ячейке PHP Excel)
Для форматирования текста внутри ячейки можно использовать объект RichText (в PHP
$objRichText = new PHPExcel_RichText();
$text1 = $objRichText->createTextRun('текст полужирный, ')
->getFont()->setBold(true)
->setName("Calibri")
->setSize("14")
->setColor($phpColor);
$text2 = $objRichText->createTextRun(' and some extra');
$text2->getFont()->applyFromArray(array( "bold" => true, "size" => 10, "name" => "Calibri", "color" => array("rgb" => "0070C0")));
$objPHPExcel->getActiveSheet()->setCellValue("A1", $objRichText);
Опубликовано Май 20, 2016 | автор: levik | Нет комментариев »
Потребовалось сохранить информацию при помощи PHP в PDF. Казалось бы, задача достаточно тривиальная - “всё давно поделано до нас” (с). Более того, ранее написанная статья о создании PDF из PHP вдохновляла - щас “раз и всё”. Ан-нет.. Несколько дней (с перерывами) на одном месте протоптался.
dompdf utf8 overflow и другие страшные слова под катом
Опубликовано Сентябрь 12, 2015 | автор: levik | Комментарий (1) »
Работа с датой и временем в PHP относительно несложная. Наличие довольно большого количества функций делает код не таким громоздким (а в PHP 5.2 с появлением DateTime[2] и в 5.3 с добавлением классов DateInterval и DatePeriod и отдельных методов - работа с датами стала ещё проще и удобнее). Итак, для работы с датой… Читать целиком »
Опубликовано Май 30, 2013 | автор: levik | Комментарий (1) »
Часто в ситуации, когда текстовое описание чуть длиннее, чем предусмотрено в дизайне (или же просто длинное описание сложно для восприятия в блоке или инфоблоке, если речь о Битрикс требуется обрезать текст в соответствии с определёнными условиями. Читать целиком »
Опубликовано Май 7, 2013 | автор: levik | Комментарий (1) »
Статья для новичков, но как ни странно, имел возможность пообщаться
с программистами (опытом более двух лет), которые не всегда понимают этот момент.
При использовании в условиях логических операций “И” и “ИЛИ” язык PHP предоставляет возможность использовать операторы:
or или || - логическое “ИЛИ”
and или && - логическое “И”
На первый взгляд может показаться, что это избыточное дублирование (применительно к программированию почти всегда есть несколько способов достичь один и тот же результат). Однако, между ними имеется разница.
Читать целиком »
Опубликовано Апрель 18, 2013 | автор: levik | Нет комментариев »
Бывают ситуации, когда требуется сохранить в лог содержимое $_POST (переменную POST запроса). Например, когда злоумышленник отправляет команды в файл, запрятанный на сайте, или при атаке большим количеством запросов POST, чтобы не только понять на какой адрес проходит атака (эту информацию можно получить из стандартных LOG-файлов web-сервера), но и какие данные используются. Читать целиком »
Опубликовано Апрель 13, 2013 | автор: levik | Комментарий (1) »
Как увеличить время сессии на PHP?
Судя по документации - за это отвечают переменные устанавливаемые в php.ini session.gc_maxlifetime и session.cookie_lifetime. Однако, если прописать их в .htaccess - сессия всё равно будет сбрасываться. Читать целиком »
Опубликовано Март 14, 2013 | автор: levik | Нет комментариев »
Столкнулся с интересной и непонятной ситуацией - в теле письма, которое формировалось скриптом странным образом в различных местах появлялся восклицательный знак. Поскольку, письмо было в формате text/html, восклицательный знак иногда не просто “проскакивал” в письме, но и “ломал” ссылки, картинки и таблицы.
Т.е. вполне возможны были ситуации вроде такой:
<img sr!c=
Читать целиком »
Опубликовано Сентябрь 8, 2012 | автор: levik | Комментарии (3) »
Задача ресайза (resize - изменение размеров) изображений возникает практически в любом более-менее серьёзном web-приложении. Аватарки, предпросмотр фотографий, миниатюры (thumbnails), нанесение водяных знаков для защиты картинок от копирования- все они предполагают предварительную обработку изображений..
В PHP для обработки изображений можно использовать встроенные функции библиотеки GD (в последнее время не встречал ни одного хостинга, где бы её не было) или класс Imagick для работы с ImageMagick. Для большинства рутинных задач, касающихся обработки изображений на PHP их вполне достаточно - примеры можно посмотреть прямо в мануале. (На самом деле, библиотек для работы с изображениями больше /Gmagick, Cairo.. А есть ещё библиотеки не упомянутые в PHP-мануале/, но, на мой взгляд, эти наиболее популярны). Читать целиком »
Опубликовано Июнь 20, 2012 | автор: levik | Комментарий (1) »
Иногда при попытке вывести phpinfo выводится пустая страница. При этом никаких ошибок не возникает, скрипт отрабатывает корректно. То есть следующий за phpinfo оператор выполняется (в примере ниже выведется 1), однако в остальном - пустая страница:
<?php
phpinfo();
echo '1';
То есть скрипт просто игнгорирует phpinfo(). Возможные причины пустой страницы:
1. файлы с расширением .php не обрабатываются php-интерпретатором и выводятся в браузер “как есть”. Однако в этом случае (как и следующем) будет не совсем пустая страница, а страница с исходным кодом;
2. в файле с вызовом функции phpinfo используется короткий тэг (<? вместо <?php ) , и при этом отключена обработка коротких тэгов (см. short_open_tag)
3. и, наконец, вызов phpinfo может быть запрещён в целях безопасности в файле php.ini - для решения следует открыть файл php.ini (обычно располагается в /etc/php/php.ini или /etc/php5/php.ini) и закомментировать строчки, в которых содержится phpinfo. После чего не забыть перезапустить сервер (service httpd restart или /etc/init.d/apache2 restart)
* Если у вас нет доступа к php.ini, чтобы включить phpinfo лучше обратиться к хостеру. Возможно, они предоставляют собственный php.ini с возможностью настройки php под свои потребности.
UPD в лог ошибок Apache при попытке обращения к запрещённому phpinfo падает примерно следующее:
PHP Warning: phpinfo() has been disabled for security reasons in .../phpinfo.php on line 2
Опубликовано Март 15, 2012 | автор: levik | Нет комментариев »