developer blog

451 degrees Fahrenheit

Archives Posts

Html DOM parser на PHP

August 11th, 2008 by pilot

Очень полезный класс для разборки DOM модели веб документа с селектора в  jQuery стиле.

Это просто незаменимая вещь если вы любитель обдирать чужие сайты )). А вообще одно из основных применений - это к примеру брать котировки валют прям со страницы банка и тд.

Почему собственно PHP Simple HTML DOM Parser:

  • Написан на PHP5+ и позволяет легко управлять HTML
  • Поддерживает не валидный HTML
  • Поиск тагов в HTML с селекторами в jQuery стиле
  • Может разложить все содержимое HTML в строку

Скачать последнюю версию с Sourceforge.

Онлайн документация.

Небольшой пример, как извлеть HTML элемент:


// Create DOM from URL or file$html = file_get_html('http://www.google.com/');


// Find all images
foreach($html->find('img') as $element)
  echo $element->src . '<br>'; 

// Find all links
foreach($html->find('a') as $element)
  echo $element->href . '<br>';
Filed under php having 5 Comments »

Archives Posts

Вот он долгожданный релиз symfony 1.1

June 30th, 2008 by pilot

release1.1 Последнее время разработчики усиленно трудились на новой версией symfony и сегодня этот день настал, можно поздравить разработчиков с выходом нового релиза symfony framework!

 

Итак список нового функционала в symfony 1.1:

  • Новая архитектура symfony более настраиваяемая и разделенная, позволяет легко использовать или заменять части фреймворка,
  • Новая объекто-ориентированный form framework, позволяет налету создавать формы и повторо их использовать,
  • Совершенно новая система задач (task system) позволяет быстро создавать рассширяемые батч скрипты и утилиты командной строки,
  • Теперь Symfony имеет приличный YAML parser, с подробными сообщениями об ошибках,
  • Новый менеджер плагинов совместим со стандартом PEAR API, отображает зависимости плагинов, и предлагает набор опций для лучшего управления тем что вы установили,
  • Система обработки форматов позволяет вашему приложению вести себя по разному в зависимости от запроса с iPhone, от поисквого бота, или от браузера,
  • Propel 1.2 ORM теперь представлен в виде плагина, что позволяет вам очень просто перейти на Doctrine или Propel 1.3,
  • Плагин sfCompat10Plugin обеспечит работу вашего проекта основанного на версии 1.0 после обновления до версии 1.1!
  • Система роутинга теперь кешируется, что приведет к значительному увеличению производительности если в вашем приложении разветвеленный роутинг. Так же, класс роутинга (routing class) больше не синглтон (singleton), так что теперь можно легко расширять его под свои нужды,
  • Последнее, не совсем фича, более чем 8,500 юнит и функционал тестов гарантируют общую ставильность кода фреймворка. Количество тестов удвоилось в 1.1 по сравнению с 1.0!

Инсталяция и обновление symfony

Для инсталяции symfony 1.1 через PEAR, теперь нужно явно указывать какую версию вы хотите установить. И так, если вы хотите установить стабильную 1.1.0 версию, выполняем:

$ pear install symfony/symfony-1.1.0

В случае если вы хотите стабильную 1.0 версию:

$ pear install symfony/symfony-1.0.17

Если вы предпочитаете скачивать самостоятельные архивы, качайте архив symfony-1.1.0.tgz или symfony-1.1.0.zip и распакуйте в любую папку на вашем диске.

Если вы новичек в symfony, для вас доступна урощенная версия “песочница” (sandbox) :

Ну и если ты совсем крут и у тебя есть доступ к SVN, просто выполни чекаут ветки 1.1:

$ svn co http://svn.symfony-project.com/branches/1.1/ /path/to/symfony

Все остальное хорошо и в деталях расписано в инструкции по установке symfony.

Обновление существующего проекта

Если вы планируете обновить существующий на symfony 1.0 проект для использования новой версии 1.1, внимательно прочтите UPGRADE файл, который есть в каждом дистрибутиве symfony. Если же вы сейчас используете symfony RC2, убедитесь что вы выполняли команду symfony project:upgrade,перед тем как обновите библиотеки symfony.

Относительно документации

Вся документациия обновлена и отображает изменения между symfony 1.0 и новой версией. Комьюнити оправдало наши ожидания и способствовало переводу документации на 10 новых языков менее чем за 15 дней!

В cookbook добавили несколько полезных примеров и опубликовали первые 4 главы книги о новом фреймворке для работы с формами. API документация так же поможет вам легко найти все что вам нужно по всему коду symfony.

Поддержка

Symfony 1.1, как переходной релиз, будет поддерживаться в течении одного года начиная с 30.06.2008, тогда как 1.0 все еще будет поодерживаться до Января 2010.

Следующий релиз

Фабьен и основная команда уже начали работу над новым функционалом версии 1.2, которая будет выходить по датам, а не по новому функионалу. Таже, цикл релизов будет радикально уменьшен (похоже, что разаботчкик будут использовать agile - scrum методологию). Можно ожидать инетесных фич и улучшений в новом релизе, начиная с совершенно нового генератора админ интерфейса основанного на новой системе работы с формами представленной в symfony 1.1.

Filed under Symfony, php having 1 Comment »

Archives Posts

Вакансия web программист

April 24th, 2008 by pilot

Немецко-Украинской компании Soft Alliance GmbH & Co. KG

Зарплата:
От 1000 у.е и выше. В зависимости от опыта работы и квалификации.

Занятость и расположение:
Полный рабочий день
Основное место работы
Станция метро пр. Гагарина (г. Харьков)

Опыт работы и образование:
Образование высшее/неоконченное высшее (студент 4-5 курсов)
Опыт работы от 1 года.

Требования к кандидатам:
PHP5
JavaScript
MySQL

Работа у нас это:
Превосходная возможность практики профессиональных навыков
Возможности профессионального и материального роста
Дружный и веселый коллектив

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

Записаться к нам на собеседование можно:
Позвонив нам +380 (66) 11-88-298 Александр

Или написать на pilot [at] pesochin [dot] net

we love symfony-project.com

Archives Posts

Рисуем свой pdf файл на php, часть 2

October 28th, 2007 by pilot

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

Итак бибилиотеке fpdf 1.5.3 , скачиваем, распаковываем к себе на сервер в любую папку, к примеру pdf, после распаковки получаем следующую структуру папок:

У себя я использую пакет denver от dklab.ru, либо XAMPP http://www.apachefriends.org/en/xampp.html, который включает полный пакет программ необходимых веб разработчику. К тому же XAMPP подойдет как тем кто любит Linux, так и Windwos разработчикам.

pdf/
-doc/
-font/
-tutorial/
-FAQ.htm
-fpdf.css
-fpdf.php
-histo.htm
-install.txt

Оставляем только необходимое папку font/ и fpdf.php. Конечно, у кого есть немного времени чтоб ознакомиться с примерами из папки tutorial/, вы не пожалеете, примеры показывают практически исчерпывающую информацию по работе с fpdf.

Для начала создамим первый простой pdf файл, создайте pdf/test.php, с кодом:

[cc lang="php"]
require(’fpdf.php’);

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont(’Arial’,'B’,16);
$pdf->Cell(40,10,’Hello World!’);
$pdf->Output();
[/cc]

Первой строчкой мы подключаем библиотеку, далее:

[cc lang="php"]$pdf = new FPDF(); // Создаем новый объект[/cc]

Изначально наш pdf файл пуст, по-этому добавляем в наш pdf, новый лист:

[cc lang="php"]$pdf->AddPage(); // по умолчанию создется лист формата А4[/cc]

Перед выводом любого текста, предварительно нужно задать шрифт, в противном случае при создание будет сообщено об ошибке:
[cc lang="php"]$pdf->SetFont(’Arial’,'B’,16);[/cc]

И вот теперь мы может напечатать свой первый текст в первом pdf файле, с помощью функции Сell(), эта функция нарисует прямоугольную область с надписью внутри. Фактически будет выведена ячейка таблицы с текстом внутри.

[cc lang="php"]Cell(40,10,’Hello World!’);[/cc]

Для вывода просто текста используюется функция Write(), а для перевода на новую строку отдельная функция Ln():

[cc lang="php"]
$pdf->Ln(); // перевод картеки на новую строку
$pdf->Write(4, “текс для вывода”); // значение 4 означение высоту строки
[/cc]

Выводим сам pdf, с помощью функции Output(), которая может принимать несколько значний, Output(”пусть/имя.pdf”, dest) имя выводимого файла, и второй необязательный параметр как будет выводиться файл, сразу в броузер либо сохранен на диск:

[cc lang="php"]$pdf->Output();[/cc]

Вот и создан первый pdf файл, на практиче простые текстовые файлы создаются довольно просто и библиотека работает безупречно.

И так вывод тикетов в pdf файл, ниже я буду давать php код с минимумом текстовых коментариев, так как основные принципы создания pdf файла я описал выше…

Read the rest of this entry »

Filed under php having 4 Comments »

Archives Posts

Рисуем свой pdf файл на php, часть 1

October 25th, 2007 by pilot

При работе над одним проектом возникла задача вывести тикеты (tickets) на предварительно порезанной самоклеющейся бумаге.

Из трех решений данной задачи:

  1. Выводить простым html ‘ лем (и конвертировать в pdf)
  2. Нарисовать gif картинку
  3. Нарисовать pdf

был выбран вариант №3 - нарисовать pdf, исходя из того, что в первом варианте вывод на печать в разных броузеров значительно отличается и выводить html, который требуется сформировать под вывод на печать основных броузеров, не целесообразно. Второй вариант - вывод в картинку, не подходил так как во время вывода изображения теряется качество выводимого текста.

Выбранный в итоге вариант рисования своего pdf, как оказалось на практике не так легко воплотить.

Первое, что нужно выбрать, библиотеку для рисования pdf.

При беглом обзоре с гуглом, попались:

  1. pdflib
  2. fpdf153
  3. html2fpdf-3.0.2b — конвертер из html
  4. dompdf-0.5.1 — конвертер из html

Выбор был остановлен на fpdf153, почему?

Самый простой вариант, который меня устраивал — это использовать конвертер из html в pdf , но полученный результат конвертирования меня не устроил, так как пердставленые бесплатные конвертеры могут корректно выполнять конвертацию только простых html файлов без использования блоков div. В основном простых таблиц обозначенных бордерами.

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

Рисовалка pdf файлов pdflib доступная как модуль расширения php хорошо документированная, оказалась для меня не доступной так как хостиг провайдер заказчика, отказался добавлять эту библиотеку. В итоге для работы я выбрал библиотеку fpdf последняя доступная версия 1.5.3 , сайт разработчика www.fpdf.org Русская документация по fpdf library качаем по ссылке http://www.fpdf.org/en/dl.php?id=92

С библиотекой все ясно, приступаем непосредственно к самому моменту рисования pdf файла, об этом во подробно во второй части…

У кого есть личный примеры работы с fpdf, пишите свои примеры, буду рад разместить ваш опыт на страницах этого дневника.

Не забудьте подписаться на RSS и e-mail рассылку.

Filed under php having No Comments »