Обновить
64K+

PHP *

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

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

PHP + Ajax = Web explorer?!

Время на прочтение1 мин
Охват и читатели3.1K
Сегодня я предлагаю одолеть одну очень популярную задачку open source методом. Задача тривиальная и давно имевшая множество решений. Но для меня лично вопрос еще открыт. А именно: веб-бейзд файл менеджер…

extplorer.png - upload images with Picamatic

eXtplorer — с помощью Ajax (ExtJS, ку-ку!) и PHP наш подопытный отлично справляется…
Что же он умеет?

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

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

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

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

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

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

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

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

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

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

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

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


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

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

Время на прочтение2 мин
Охват и читатели1.1K

Что это?


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

Каптча 3d

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



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

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

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

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

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

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

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

Intrusion Detection For PHP Applications With PHPIDS

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

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

Время на прочтение1 мин
Охват и читатели4K
В этом тестировании я решил выяснить, какова производительность различных современных классов абстракции от базы данных. Тест состоит из двух этапов: синтетический и тест из реальной жизни, которые отличаются способом формирования нагрузки на классы. Также я сравнил производительность без 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 мин
Охват и читатели990
Сегодня после обкатки релиз-кандидата вышел официальный релиз 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 мин
Охват и читатели1K
Пару дней назад прошла конференция PHPConf 2008, для веб-разработчиков с ориентацией на PHP-программистов. Чтобы закрепить свои впечатления решил написать пост, что лично я вынес с этой конференции. Не претендую на истину последней инстанции, так что наверняка других участников заинтересовало совершенно другое. Наверняка кто-то ездил с целью в основном пообщаться в кулуарах, кто-то с целью попробовать пиво Пилзнер Урквел. Я написал, что понравилось/не понравилось мне.

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

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

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

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

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

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

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

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

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


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



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

PHP mail под Windows

Время на прочтение3 мин
Охват и читатели83K
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.2K
Достаточно недавно вышла новая версия этого замечательного редактора. Если вы пользуетесь профессиональными интегрированными средами разработки типа Zend Studio или Eclipse, то я думаю что этот редактор может показать просто убогим. Хотя бы по размеру дистра (всего 5,5 Мб).
Однако тем не менее, выпускать его из виду я думаю нельзя. Итак,



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

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

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

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

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

IP География

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

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