Обновить
50.52

PHP *

Скриптовый язык общего назначения

Сначала показывать
Порог рейтинга
Уровень сложности

Узнаем оператора и регион мобильного телефона

Время на прочтение4 мин
Количество просмотров16K
image
Как то гуляя в интернете наткнулся на интересную ссылку — Коды мобильных операторов. И очень мне захотелось иметь такую базу локально.
Под катом дамп mysql базы, php код для её использования и скрипт парсер для обновления.
Читать дальше →

Споры о шаблонизаторах: троллинг или умные мысли?

Время на прочтение3 мин
Количество просмотров1.7K
причины родились в том, что в топах посвященных обзорам конкретных шаблонизаторов спорят на обобщенную тему:
Обзор шаблонизатора Quicky: Производительность и Гибкость.
MACRO — гибкий PHP шаблонизатор, с человеческим «лицом»
раследование проведено на основе данных, полученных в топе:
HolyWar: Шаблонизаторы. Нужны ли они? состоятельны ли они? Форум.
результаты расследования под катом
Читать дальше →

HTTP_StaticMerger — автоматическая «склейка» CSS- и JS-файлов для быстрой загрузки

Время на прочтение1 мин
Количество просмотров1.3K
Библиотека HTTP_StaticMerger позволяет автоматически «сливать» набор статических файлов (CSS и JS) и, таким образом, ускорять загрузку страницы, экономя HTTP-запросы. Библиотеку рекомендуется применять совместно с кэширующим reverse proxy для минимизации времени ответа.
Читать дальше →

разбираем файлы MS-office

Время на прочтение2 мин
Количество просмотров4.7K
Недавно передо мной была поставлена задача: вытащить некую информацию из файлов MS-office (.xls, .doc) для ее последующей обработки. По факту, нужно было вытащить текст, содержащийся в документе.

Как без особого труда вытащить текст, содержащийся в файлах XLS или DOC

Обзор шаблонизатора Quicky: Производительность и Гибкость

Время на прочтение5 мин
Количество просмотров5.2K
Quicky — hi-end шаблонизатор, написанный на PHP отличающийся гибкой функциональностью, и в то же время, высокой производительностью. За основу взят синтаксис и функционал Smarty.


содержание:
переход со Смарти, на Quicky
— — чем Quicky лучше Smarty?
Quicky быстрее PHP-native?
Quicky темная сторона силы.
Комьюнити Quicky. (теперь все тут http://code.google.com/p/quicky/)
Богатые возможности Quicky.
Вместо заключения. Личное мнение.
Читать дальше →

MACRO — гибкий PHP шаблонизатор, с человеческим «лицом»

Время на прочтение3 мин
Количество просмотров2.7K
Раз уж сегодня на хабре день РНР шаблонизаторов, то не могу не рассказать о MACRO — наиболее гибком шаблонизаторе с читаемыми шаблонами, среди известных мне.
я хочу прочитать третье, за день, описание шаблонизатора

PhpMathPublisher — математические формулы в HTML

Время на прочтение2 мин
Количество просмотров13K
В одном из проектов возникла необходимость использования сложных математических формул в тексте. Вариант использования редакторов формул наподобие Microsoft Equation с последующим сохранением в виде картинки не подходит, так как необходима возможность легкого редактирования существующих формул.
Решение нашлось в виде PhpMathPublisher.
Подробнее под катом

Нативный шаблонизатор

Время на прочтение9 мин
Количество просмотров8K
Я довольно давно уже использую нативные шаблоны, но, почему-то, у многих людей нативные шаблоны ассоциируются с конструкциями типа:

  1. $title = 'My title';
  2. include('templates/index.html');
* This source code was highlighted with Source Code Highlighter.

  1. <html><head><title><?php echo $title ?></title></head>
  2. <!-- ... -->
* This source code was highlighted with Source Code Highlighter.


То есть, переменную определили и приинклюдили html-файл. Я считаю, что это в корне неверный подход. Почему?

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

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

Потому я написал свой.
Читать дальше →

приемы работы с шаблонизатором

Время на прочтение3 мин
Количество просмотров1.3K

Вложенный шаблон должен задать title


чаще всего встречал такую проблему: в середине страницы выводится блок, этот блок задает Title, но реально Title уже выведен в head как быть?
Читать дальше →

Функция echo в PHP может выполняться более 1 секунды

Время на прочтение6 мин
Количество просмотров14K

Или об особенностях управления отдаваемым контентом в PHP.


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

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

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

SMS Уведомления + Логирование событий в Google Calendar на PHP

Время на прочтение2 мин
Количество просмотров2.7K
Навеяло: Чудеса автоматизации или как отправляют SMS настоящие гики.
Если люди делают такие изощрения — значит сильно надо.

За пару часов был разработан класс для добавления в Google Calendar событий. А уже календарь гугла станет нам слать СМСки.
Читать дальше →

Ближайшие события

Работа с ANSI консолью

Время на прочтение5 мин
Количество просмотров4K
imageЧасто ли нужно сделать програму для консоли? Не так часто, да? А вот я последнее время только этим и занимаюсь… Поэтому сделал класс (на самом деле сделал еще очень давно).
Этот класс позволяет выполнять такие простые операции, как подсветка текста, подсветка бэкграунда буквы или текста, установка курсора на нужную позицию, выбор консоли для вывода и ввод текста в консоль.
Читать дальше →

Кеширование обычными средствами

Время на прочтение2 мин
Количество просмотров6.6K
Сегодня решил сделать то, что собирался уже давно — поставить таки кеширование скриптов у себя на сайте. Все скрипты перед отдачей пользователю собираются в один файл и сжимаются GZIP'ом — все вроде по-уму, но есть проблемка… Браузер отчаянно не хотел кешировать этот выходной скрипт.

Опытным путем было установлено, что PHP устанавливает хидеры запрета кеширования при использовании функции session_start();
Читать дальше →

Безопасная загрузка изображений на сервер. Часть вторая

Время на прочтение7 мин
Количество просмотров28K
Это вторая часть перевода. Начинать прочтение лучше с первой.

Итак, после применения описанных в первой части методов, мы можем прекратить волноваться? К сожалению, нет. То, какие расширения файла будут переданы транслятору PHP, будет зависеть от конфигурации сервера. Разработчик часто не знает и не контролирует конфигурацию веб-сервера. Мы видели веб-серверы, с такой конфигурацией, что файлы .html и .js выполнялись как php. Некоторые веб-приложения могут потребовать, чтобы файлы .gif или .jpeg интерпретировались PHP (это часто случается, когда изображения, например графы и диаграммы, динамически строятся на сервере самим PHP).

Даже если мы знаем точно, какие расширения файла интерпретируются PHP, у нас нет никакой гарантии, что это не изменится в будущем, когда другие приложения будут установлены на сервер. К тому времени можно забыть, что безопасность нашего сервера зависит от этих изменений.
Читать дальше →

Безопасная загрузка изображений на сервер. Часть первая

Время на прочтение10 мин
Количество просмотров138K
В данной статье демонстрируются основные уязвимости веб-приложений по загрузке файлов на сервер и способы их избежать. В статье приведены самые азы, в врят-ли она будет интересна профессионалам. Но тем неменее — это должен знать каждый PHP-разработчик.

Различные веб-приложения позволяют пользователям загружать файлы. Форумы позволяют пользователям загружать «аватары». Фотогалереи позволяют загружать фотографии. Социальные сети предоставляют возможности по загрузке изображений, видео, и т.д. Блоги позволяют загружать опять же аватарки и/или изображения.

Часто загрузка файлов без обеспечения надлежащего контроля безопасности приводит к образованию уязвимостей, которые, как показывает практика, стали настоящей проблемой в веб-приложениях на PHP.

Проводимые тесты показали, что многие веб-приложения имеют множество проблем с безопасностью. Эти «дыры» предоставляют злоумышленникам обширные возможности совершать несанкционированные действия, начиная с просмотра любого файла на сервере и закачивания выполнением произвольного кода. Эта статья рассказывает об основных «дырах» безопасности и способах их избежать.
Читать дальше →

Функции для работы с объектами работают и с классами (PHP 5.2)

Время на прочтение2 мин
Количество просмотров2.5K
Оказывается, что спецификация некоторых функций для работы с классами не достаточно точна
вот решил постараться закрыть пробел.

symfony — первое знакомство, рассуждения и впечатления.

Время на прочтение3 мин
Количество просмотров370
Сегодня хочу рассказать Вам о своем недавно состоявшемся первом знакомстве с фреймворком symfony.

Так как до этого я в течение длительного срока (около полутора лет) разрабатывал свои приложения на Zend Framework'е — мне есть с чем сравнивать.
Читать дальше →

Пишем на картинках

Время на прочтение7 мин
Количество просмотров15K
В течение последнего времени что-то часто стали мелькать статьи про обработку изображений на php. Скругленные края уже были, тени были, мокрый пол был, еще куча всего было.

А вот надписей вроде еще не было. Значит будут. :-)

Представляю вашему вниманию не большой, но в тоже время достаточно богатый возможностями класс (на основе GD) написания текста на картинках TrueType-шрифтами.
Код и пример под катом