Обновить
29.39

PHP *

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

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

Отладка PHP средствами Firebug

Время на прочтение2 мин
Количество просмотров25K
FirePHP

Отладка PHP-скриптов определенно недостаточно освещена в интернете. Потому многие, очень многие довольствуются print_r-ками. Очевидный недостаток такого способа — нельзя отладить AJAX, SOAP-сервисы, генераторы картинок и вообще скрипты, не отдающие непосредственно HTML-документов.

Javascript-разработчики используют для отладки Firebug. Как я им всегда завидовал. Лепота — выделенная консоль, net-монитор, отладчик, и все это в любимом браузере.

Так вот, нашел такое расширение Firebug — FirePHP. Оно позволяет выводить информацию в консоль Firebug непосредственно из PHP. Делается это довольно простым вызовом:
Читать дальше →

Интерфейс Javascript < == > PHP

Время на прочтение7 мин
Количество просмотров11K
Удивишись, что мой хабраюмор хабралюди понимают с трудом, перешел к написанию ещё одного интересного хабратопика. :)

Хочу предложить один удобный метод для взаимодействия Javascript с PHP.

Можно в PHP добавить класс, с возможность 'удаленного' запуска оттуда функций с параметрами.
Читать дальше →

Время жизни сессии

Время на прочтение2 мин
Количество просмотров125K
Приветствую.
Столкнулся с проблемой убийства сессий раньше назначенного им срока. То есть устанавливаю

ini_set('session.gc_maxlifetime', 120960);
ini_set('session.cookie_lifetime', 120960);


А сессия убивается примерно через 30 минут.
Гуглил долго и тщательно. Не нагуглил ничего, что помогло бы.
Стал читать мануал и нашел причину проблемы. Оказалось всё просто до одурения.
Читать дальше →

Разделение вида и контроллера

Время на прочтение2 мин
Количество просмотров997

Что это?


Думаю многие из программистов понимают необходимость разделять контроллеры (или, как еще говорят, бизнес-логику) от вида (или логики отображения). Это упрощает поддержку, редизайн и реализацию скинов. Реализаций этого безобразия существует огромное количество и я хотел бы и свои пять копеек вставить :)
Вы можете найти огромное количество топиков на эту тему, но в основном они касаются «вида», точнее всяческих шаблонизаторов. Я не буду сейчас об этом, иначе это превратится в очередной холивар. Темя этой статьи — контроллер, а точнее моя его реализация, хотя отображения это тоже касается :).
Если где-то есть нечто похожее буду благодарен за указание источников.
Читать дальше →

Каптча 3d

Время на прочтение7 мин
Количество просмотров6.3K
Прочитав топик «RapidShare — новые каптчи», я вспомнил как слушал доклад создателя каптчи на UaВебе.



Зайдя на сайт, желая посмотреть код, я увидел:
Q: Is it opensource?
A: No, sorry. Maybe later.

Я удивился! Мне казалось что любой маломальски образованный хороший программист сделает такую каптчу.
Погуглив и нашел пару интересных линков: 1, 2 и не получил кода, решил написать сам.
Читать дальше →

Моя реализация локализации интерфейса в PHP

Время на прочтение2 мин
Количество просмотров3.5K
Текущее положение дел такое, что очень часто приходится реализовывать мультиязычность в своих работах. Вроде бы техники хорошо описаны и проблем не должно быть, но я решил пойти своим путем.
Читать дальше →

Вся правда о шаблонизаторах

Время на прочтение10 мин
Количество просмотров36K
Статейка старенькая, но думаю до сих пор актуальная

Cлишком часто я в последнее время слышу слово «шаблонизатор». Не утихают споры между сторонниками разных шаблонных движков. Одни говорят что логика в шаблонах это хорошо, другие считают что это зло. Даже сейчас очень часто встречаются проекты, написанные вообще без применения какого либо шаблонизатора. Но в этой статье я не буду предпринимать попыток стать на сторону одной из сторон. Я не буду вам доказывать преимущества ни одного из подходов. Я просто постараюсь рассказать обо всех из них с точки зрения теории. Эта статья не о конкретных программных продуктах, а о способах выделения логики представления в ваших приложениях.
Читать дальше →

Intrusion Detection For PHP Applications With PHPIDS

Время на прочтение4 мин
Количество просмотров3.9K
Эта статья покажет как настроить PHPIDS. PHPIDS (PHP-Intrusion Detection System) — это легко используемая, хорошо структурированная, быстрая прослойка для анализа безопасности ваших приложений. IDS — не является прослойкой для анализа данных, введенных пользователем, он только распознает, когда пытаются атаковать ваш сайт. на основе набора проверенных и оттестированных правил каждой атаке сопоставлен рейтинг ее опасности. Это позволит легко сохранять статистику по атакам или отсылать уведомления для команды разработчиков.
Читать дальше →

Сравнение скорости PDO, ADOdb, MDB2, Zend_Db, ADOdb Lite и DbSimple

Время на прочтение1 мин
Количество просмотров3.9K
В этом тестировании я решил выяснить, какова производительность различных современных классов абстракции от базы данных. Тест состоит из двух этапов: синтетический и тест из реальной жизни, которые отличаются способом формирования нагрузки на классы. Также я сравнил производительность без opcode кеша APC, и с ним.
В тестировании приняли участие:

Пространство имён в php 5.3 и php 6

Время на прочтение2 мин
Количество просмотров6.3K
Пространство имён (namespace/package) знакомо java и c# программистам, теперь доступно и в php. Нужно оно для того, что-бы не писать длинные перефиксы к названиям классов, как сейчас делается в Zend, PEAR и других библиотеках и платформах для совместимости.
Вместо этого классы, функции, интерфейсы (абстрактные классы) и константы могут быть объединены в одно пространство имён. Глобальные переменные в это пространство не входят.

Простой пример


Определяется пространство ключевым словом namespace
//определяем класс в пространстве
namespace MyCMS::Core;
class System{}

Использование этого класса в третьих библиотеках осуществляется ключевым словом use
require_once('mycms/core.php');
use MyCMS::Core::System; //импортируем только заданный класс
$objSystem=new System;

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

Вышел релиз eZ Components 2008.1

Время на прочтение3 мин
Количество просмотров937
Сегодня после обкатки релиз-кандидата вышел официальный релиз eZ Components 2008.1. Пересказывать changelog не буду, попробую сделать краткое введение в eZ Components.

Итак, eZ Components — это высококачественный объектно-ориентированный web-фреймворк, написанный на PHP5, распространяемый по New BSD License. О нем уже писали на Хабре. Описываемая версия требует PHP >= 5.2.1

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

Автоматическое определение языка произвольного текста на РНР — библиотека PHPLangautodetect

Время на прочтение15 мин
Количество просмотров20K
Знаете, работа с стартапе, который пытается создать что-то новое и уникальное на рынке очень захватывает. И не только открывающимися возможностями, но и часто нетривиальными задачами и вопросами, которые ставятся перед создателями и которые раньше никто не решал. Вот один из таких вопросов как раз вчера появился передо мной: дано нам произвольную строку текста, заведомо известно, что она может быть двух, а в некоторых случаях и трехъязычной, то есть там смешанный текст из нескольких языков. Необходимо прозрачно для пользователя определить язык, на котором написан текст.

На самом деле задача не такая и редкая — подобная функциональность есть и в текстовых редакторах, и в переключателе клавиатуры PuntoSwitcher, да и в системах машинного перевода такой функционал востребован, не говоря уже про системы поиска информации. Кстати, именно в контексте создания специализированного поисковика и классификатора текстов и появилась такая проблема. Необходимо было получить такую возможность в собственной программе на платформе РНР и при этом не задействовать сторонние сервисы — подобная возможность в виде веб-сервиса присутствует в Google Language API (в своём блоге я уже исследовал этот сервис), однако она выполняется удалённо и имеет некоторые существенные для нас ограничения, в частности, процедура опознания языка выполняется с существенной задержкой и асинхронна по своей природе. Кроме этого очень хотелось иметь полный контроль над процессом и иметь возможность его гибко настраивать, чего, увы, нет в сторонних сервисах. Поэтому пришлось подумать и попробовать реализовать собственными силами, результат же представляем вашему вниманию.
Читать дальше →

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

Что нового я узнал на PHPconf 2008

Время на прочтение5 мин
Количество просмотров967
Пару дней назад прошла конференция PHPConf 2008, для веб-разработчиков с ориентацией на PHP-программистов. Чтобы закрепить свои впечатления решил написать пост, что лично я вынес с этой конференции. Не претендую на истину последней инстанции, так что наверняка других участников заинтересовало совершенно другое. Наверняка кто-то ездил с целью в основном пообщаться в кулуарах, кто-то с целью попробовать пиво Пилзнер Урквел. Я написал, что понравилось/не понравилось мне.

Итак, начинаем по пунктам рассматривать все выступления (возможно я что-то и забыл, но значит оно мне точно не очень понравилось).
Читать дальше →

Особенности условных конструкции со строками в PHP

Время на прочтение3 мин
Количество просмотров3.6K
На Хабре часто обсуждается какой язык лучше для написания безопасных приложений. При этом часто отмечается, что PHP спроектирован таким образом, что начинающий разработчик будет допускать ошибки, приводящие к дырам безопасности. В этом хабрапосте я хочу рассказать о, на мой взгляд, нелогичном поведении операций сравнения, операторов if и switch при работе со строками. Опытным разработчикам данные особенности известны, но решил все же собрать их в одном месте. Думаю пост будет полезен начинающим разработчикам и тем, кто работает в PHP, имея опыт программирования на других языках.

Что есть истина?

Какие строки истинны? Рассмотрим пример:
Читать дальше →

Фотошопим на PHP

Время на прочтение2 мин
Количество просмотров4.1K
Уменьшаем изображение разными библиотеками и сравниваем результат Для многих задач автоматической обработки фотографий не подходит качество и функционал библиотеки GD. Поскольку возможности обратиться к Photoshop из PHP или Perl пока не существует, решаем проблему с помощью ImageMagick.

Речь пойдет о PHP инрефейсе к ImageMagick MagickWand, который в репозитарии Fedora называется php-magickwand. Хочу обратить Ваше внимание, что MagickWand API отличается от классического ImageMagick тем что позволяет работать как с элементами растровой графики, так и с элементами векторной графики.

Для php есть еще одна реализация интерфейса к ImageMagick, которая называется IMagick, но функционал этой библиотеки, на мой взгляд, уступет MagickWand.


В первой статье рассмотрим на примерах несколько типичных задач по обработке изображений и сравним результаты с php-gd.



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

PHP mail под Windows

Время на прочтение3 мин
Количество просмотров81K
PHP mail картинка с конвертом

В этой статье я хочу рассказать об отправке почты из php скриптов под Windows.

Америку я, конечно, не открою, но надеюсь, что кому-то эта статья будет полезна или просто сэкономит время.

С точки зрения php программиста отправка почты выполняется с помощью стандартной функции mail(). И вот тут у многих начинающих разработчиков возникает проблема. Скрипт, прекрасно работающий на сервере хостера, выдает ошибки на локальном компьютере.

Обычно эти ошибки имеют примерно такое описание:
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in E:\www\simplemail\mailer.php on line ......
Читать дальше →

Новая версия редактора Rapid PHP

Время на прочтение2 мин
Количество просмотров3.1K
Достаточно недавно вышла новая версия этого замечательного редактора. Если вы пользуетесь профессиональными интегрированными средами разработки типа Zend Studio или Eclipse, то я думаю что этот редактор может показать просто убогим. Хотя бы по размеру дистра (всего 5,5 Мб).
Однако тем не менее, выпускать его из виду я думаю нельзя. Итак,



Полную характеристик переписывать нет смысла. Ее можно прочитать на странице загрузки.
А вот удобство по своему опыту работы я опишу.
— Подсветка синтаксиса и дописывание слов это думаю и так понятно.
— Очень удобная подсветка скобок {} [] (). точно не ошибетесь если много чего вложено друг в друга. В новой версии появилась еще подсветка HTML блоков, например DIV или P и все все все. Мелочь, а приятно.
— Возможность прямо из программы подключатся к БД. Если честно, то я этим и не пользовался. так, экспериментировал однажды.
— Code Explorer — вообще не представляю как без нее можно было работать. Это вывод структуры программы — функции, классы, переменные, инклуды. А в новой версии прямо в коде можно узнать где была объявлена функция или переменная буквально двумя кликами.
— поиск. достойный. что тут сказать.
— Да и еще масса интересных вещей, упрощающих кодинг будь то верстка или программирование.
— А еще не помню может и раньше было, но там еще есть классная функция форматирования кода. Если по каим-то причинам не были соблюдены табуляции или код чужой и нечитабельный, то это фича облегчит чтение.

А еще этот редактор просто молниеносно загружается. Очень рекомендую, если вы уже были знакомы с этой программой или не работали с ней раньше.

И маааленькая ложка дегтя на дорожку — она условно-бесплатна. разве это остановит нас? :)

Перейти к загрузке Rapid PHP

… немного странно что на офсайте разработчиков в тайтле до сих пор написано Rapid PHP 2007ююю

IP География

Время на прочтение2 мин
Количество просмотров14K
Недавно мне пришлось иметь дело с программой для ведения статистики кликов некой системы обмена объявлений. При щелчке как обычно собиралась информация о клике (на какой странице произошло, во сколько, браузер, ИН объявления и IP). В представлении статистики состояла задача — узнать город из которого произошел переход. Раньше я этим не интересовался особо поэтому только сечас у меня началось более глубокое знакомство с GeoIP системами.

Кроме того как это удалось
Я расскажу еще о некоторых интересных сервисах

Установка memcached под Windows за 5 минут (php5)

Время на прочтение1 мин
Количество просмотров39K
Многие разработчики используют Memcached, систему кэширования различных объектов в оперативной памяти. Устанавливается она очень просто
Читать дальше →