Рейтинг: 0
Создана 8 лет назад
Владелец root

Стена группы

Загрузка...
Den
6 лет назад
#
Генерируем красивые картинки для социальных сетей

Морковь как двигатель прогресса

$generator = new imgGenerator();
$textGenerator=new imgTextGenerator();
$textGeneratorTop=new imgTextGenerator();

$label=$textGeneratorTop
	->seTextShadow("#000000", 75, 1, 2, 2)
	->setText("Test Site","#ffffff",imgGenerator::position_center_top,"1/12",0 )
	->setBackground("#000000",'3%')
	->setFont(DR."/upload/fonts/fonts2_7/hinted-PTF55F.ttf");

$text=$textGenerator
	->seTextShadow("#000000", 75, 1, 2, 2)
	->setText("Морковь как двигатель прогресса человечества","#ffffff",imgGenerator::position_center_center,"1/7",array(0,'5%',0,'5%'))
	->setFont(DR."/upload/fonts/fonts2_7/hinted-PTF55F.ttf");

$generator
	->addText($text)
	->addText($label)
	->fromImg($_SERVER["DOCUMENT_ROOT"] . "/upload/dynamic/2016-08/15/carrot-big.jpg")
	->resizeFor("autodetect")
	->addOverlay(0.5,"#000000")
	->show();

Глядя на красивые картинки для соц. сетей, которые в последнее генерируют многие новостные (и не только) сайты — захотелось написать свой генератор.

Примеры картинок

Примеры картинок

Подробнее
6 лет назад
#
Обзор расширения OPCache для PHP

OPCache

PHP — это скриптовый язык, который по умолчанию компилирует те файлы, которые вам нужно запустить. Во время компилирования он извлекает опкоды, исполняет их, а затем немедленно уничтожает. PHP был так разработан: когда он переходит к выполнению запроса R, то «забывает» всё, что было выполнено в ходе запроса R-1.

Очень маловероятно, что на production-серверах PHP-код изменится между выполнением нескольких запросов. Так что можно считать, что при компилированиях всегда считывается один и тот же исходный код, а значит и опкод будет точно таким же. И если извлекать его для каждого скрипта, то получается бесполезная трата времени и ресурсов.

Работа PHP

Подробнее
6 лет назад
#
Скрипт массовой проверки тИЦ

Существует несколько способов программной проверки тИЦ сайта.

Первый способ: загружать страницу Яндекс.Каталога search.yaca.yandex.ru/yca/cy/ch/www.manipulyator-77.ru/ (сайт перевозки бревен, тиц менее 10) и парсить контент для определения нужного параметра с помощью регулярных выражений.

Подробнее
6 лет назад
#
Массивы в РНР 7: хэш-таблицы

Хэш-таблицы используются везде, в каждой серьёзной С-программе. По сути, они позволяют программисту хранить значения в «массиве», индексируя его с помощью строк, в то время как в языке С допускаются только целочисленные ключи массива. В хэш-таблице строчные ключи сначала хэшируются, а затем уменьшаются до размеров таблицы. Здесь могут возникать коллизии, поэтому нужен алгоритм их разрешения. Существует несколько подобных алгоритмов, и в РНР используется стратегия связных списков (linked list).

В Сети есть немало замечательных статей, подробно освещающих устройство хэш-таблиц и их реализации. Начать можно с http://preshing.com/. Но имейте в виду, вариантов структуры хэш-таблиц — несметное множество, и ни один из них не совершенен, в каждом есть компромиссы, несмотря на оптимизацию циклов процессора, использования памяти или хорошее масштабирование потокового окружения (threaded environment). Одни варианты лучше при добавлении данных, другие — при поиске и т. д. Выбирайте реализацию в зависимости от того, что для вас важнее.

Хэш-таблицы в РНР 5 подробно рассмотрены в материале phpinternalsbook, который я написал вместе с Nikic, автором хорошей статьи про хэш-таблицы в РНР 7. Возможно, её вы тоже сочтёте интересной. Правда, она писалась до релиза, поэтому некоторые вещи в ней слегка отличаются.

Здесь же мы подробно рассмотрим, как устроены хэш-таблицы в РНР 7, как с ними можно работать с точки зрения языка С и как ими управлять средствами РНР (используя структуры, называемые массивами). Исходный код в основном доступен в zend_hash.c. Не забывайте, что хэш-таблицы мы используем везде (обычно в роли словарей), следовательно, нужно проектировать их так, чтобы они быстро обрабатывались процессором и потребляли мало памяти. Эти структуры решающе влияют на общую производительность РНР, поскольку местные массивы не единственное место, где используются хэш-таблицы.

Подробнее
7 лет назад
#
Своё облачное хранилище изображений за 30 минут

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

Хранилище изображений

Читать далее
8 лет назад
#
DOMPDF – экспорт данных из PHP в PDF

habrahabr.ru

С помощью библиотеки DOMPDF можно создавать PDF файлы из HTML кода. Нужно только сверстать некий HTML шаблон и передать его DOMPDF и уже на выходе получить сгенерированный PDF файл. Но не надо забывать и то, что эта библиотека не движок для обработки веб-страниц, а значит и шаблоны должны быть сверстаны с использованием самых базовых средств: HTML тегов и CSS стилей. Хотя разработчики заявляют, что их библиотека поддерживает стандарты CSS 2.1 и даже некоторые свойства CSS 3. С полным их перечнем можно ознакомиться здесь. Есть, кстати, один минус – она является довольно “прожорливой” к оперативной памяти. Поэтому возможно придется задуматься об аренде виртуального выделенного сервера. Но это зависит от содержания и объема планируемых PDF документов. С другой стороны она вам может помочь сэкономить много времени на разработку различных отчетов в формате PDF.
Читая различную документацию по DOMPDF, а ее немного и то в основном больше информации в виде ответов на заданные вопросы. Я заметил, что ее используют для более тривиальных задач. Ну, к примеру, ответа на вопрос: как задать номер стартовой страницы для документа? Мной получено не было.
Сейчас я вам хочу рассказать о тех “подводных камнях”, с которыми мне пришлось столкнуться. И поверьте, я потерял много времени. Потерял бы еще больше, если бы мне не дал пару советов один добрый человек. Уже имевший опыт по работе с данной библиотекой.
Представляю перечень проблем, с которыми мне пришлось столкнуться:

  • отсутствие необходимых каталогов с файлами (не полная сборка);

  • частично рабочая версия библиотеки;

  • наличие бага при попытке установки номера страницы документа (номер стартовой страницы);

  • наличие в конце документа пустой страницы;

  • не полное заполнение страницы текстом (иногда оставалось много пустого места).



Как видно из всего выше сказанного, в этой библиотеке имеется достаточно неприятных багов, но если постараться, то с ней можно “договориться”.

8 лет назад
#
PHPStamp — честная генерация DOCX документов из шаблона

habrahabr.ru

Это еще одна попытка реализовать стабильный, полноценный шаблонизатор офисных документов, основанных на XML, пользуясь стандартными для PHP средствами DOMDocument и XSL.

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

Найти библиотеку можно здесь: github.com/shadz3rg/PHPStamp

8 лет назад
#
Получение курсов валют на PHP

habrahabr.ru

В интернете описано множество решений по получению актуальных курсов валют. Большинство решений основано на бесплатном сервисе Центробанка (подробнее о сервисе на сайте Центробанка).

Казалось бы, хороший и удобный интерфейс от главного экономического регулятора РФ, однако у него есть несколько неприятных особенностей. Самый значительный его минус в том, что IP, с которого вы будете парсить их сервис курсов валют может, быть заблокирован в любой момент совершенно неожиданно для вас. В моем случае я обновлял курс через сервис ЦБ РФ около 2 месяцев, каждый день каждые два часа (для организации очень важно иметь актуальные данные по курсу валют). Причем на сайте не указано никаких ограничений по использованию данного сервиса, более того, они предлагают свой скрипт для получения актуального курса. Если вас заблокировали, с данного IP вы даже не сможете зайти на сайт регулятора. Для заблокированных пользователей они выводят страницу с бесконечной переадресацией. Обычно блокировка длится не более 24 часов, однако нет никаких гарантий, объяснений причин и т. п. В общем и целом предоставляемый ЦБ РФ сервис ненадежен…

8 9

Авторизация

Войдите, используя Ваш аккаунт

Войти с помощью

Пользователи

Skyeng
GeekBrains
Lingualeo