Как получить данные из JSON формата?

Начиная с 5-ой версии PHP появилась возможность использовать стандартные средства PHP для получения данных, сохраненных в JSON формате (json decode). Теперь для этого достаточно использовать функцию json_decode.


( Читать дальше )

Как закодировать данные в JSON формате

Наиболее частая проблема, при разработке первого приложения с использованием AJAX заключается в том, что разработчики пытаются разработать свою собственную функцию для представления массива PHP в виде JSON строки. На самом деле никакой проблемы тут нет, начиная с 5-ой версии PHP поддерживает функцию json_encode.


( Читать дальше )

PHP DirectoryIterator

Сейчас очень много работаю с SPL классами в PHP. Честно говоря, работать с ними не всегда удобно. Сегодня наткнулся на проблему с указателями в DirectoryIterator. Ее суть хорошо отражает следующий код.


$dirTree = new DirectoryIterator("/testDir"); // Допустим в директории файлы a.php и b.php

$items = array();                      
foreach($dirTree as $item) {    
   if ($item->isDir()) {     
         $items[] =  $item;        
         echo $item->getFilename(); // Здесь все ок - сначало выводится a.php, затем b.php
   }                         
}                               

$firstElement = $items[0];              
var_dump($firstElement->getFilename()); // вот здесь выводится пустая строка, а я ожидал что будет ‘a.php’



( Читать дальше )

SPL Iterators


Базовые понятия
Итераторы (Iterators) — это классы которые реализуют интерфейс Iterator. Реализация данного интерфейса необходима при организации доступа к циклическим структурам (массивы, списки и т.д.).

В SPL (Standard PHP Library) существует большое количество готовых классов, реализующих интерфейс Iterator.

Далее перечислены классы, которые непосредственно реализуют интерфейс Iterator: Traversable, IteratorAgregate, OuterIterator, RecursiveIterator. Остальные классы-итераторы SPL наследуют свои интерфейсы уже от них.


( Читать дальше )

Поиск и сортировка файлов средствами PHP (SPL)

В старых версиях PHP для работы с файлами и каталогами предусмотрены такие функции как open_dir, read_dir и т.д. Начиная с 5-ой версии PHP для работы с файловой структурой намного удобнее использовать классы SPL (Standard PHP Library). Для наглядности предлагаю разобрать небольшой пример.

Допустим, нам необходимо просканировать дерево каталогов и найти в них все файлы. Затем полученный список нужно отсортировать в алфавитном порядке. Вот как эту задачу можно решить используя SPL:


( Читать дальше )

Что такое PHP SPL


SPL — это набор стандартных библиотек PHP (Standard PHP Library) появившихся начиная с 5-ой версии PHP.
Если рассматривать SPL с позиции разработчика, то легко выделить шесть основных классов и интерфейсов, функционал которых расширяется в большом множестве классов-потомков.


( Читать дальше )

The requested operation has failed


Ошибка «The requested operation has failed» — это не совсем ошибка PHP, но очень часто появляется именно при попытке настроить Apache 2.2.x для работы с PHP, подключаемого в качестве модуля. В таком случае причин появления ошибки может быть несколько.


( Читать дальше )
  • 0
  • 28 февраля 2010, 07:18
  • admin
  • 1

Call to undefined function curl init

Если Вы попали на эту страницу, значит у Вас есть проблема и имя этой проблемы: «Call to undefined function curl init». Так как ошибка среди Веб-программистов очень распространенная, то смею предположить следующее:

1.Вы начинающий веб-программист и с ошибкой «Call to undefined function curl init» сталкиваетесь впервые;
2.Как начинающий программист, Вы работаете в популярном пакете «Денвер»;
3.Опыта работы с CURL у Вас нет.

Если все сказанное — это про Вас, то вполне вероятно я смогу помочь Вашему горю.


( Читать дальше )

Передача переменных в PHP Array


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

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


( Читать дальше )

Работа с массивами в PHP

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

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

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



( Читать дальше )

Ограничения на Cookie


Давно хотел разобраться с тем какие ограничения накладывают браузеры на хранение куков (cookie). Сегодня смог выкроить на это время и провести несколько простых тестов. Так как на полноту эксперимента я не претендую, то для исследования взял только три браузера — Opera 9, FireFox 3, InternetExplorer 8. Далее о том, какие результаты получены.


( Читать дальше )

Пара мыслей об анлизе и планировании проекта



Давно уже хочется что-нибудь написать о том, с чего и как начинают программный проект «взрослые» дяди. Но все как-то руки не доходили. И вот час «Х» настал.

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


( Читать дальше )

Как получить HTTP заголовки с помощью WireShark


В этой статье я расскажу о том как с помощью сниффера WireShark получить содержимое HTTP-заголовков, которые отправляются и получаются браузером. Данная информация может быть очень полезна при отладке веб-приложений, а так же для изучения HTTP-протокола.


( Читать дальше )
  • 0
  • 6 января 2010, 02:24
  • admin
  • 1

Phing. Как удалить файлы с ипользование wildcard

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


( Читать дальше )

Как совместить SimpleTest и Kohana

Недавно передо мной встал вопрос: «А каким образом к фреймворку Kohana прикрутить Simple Test Unit». Задача простая и в интернете полным полно предложений по ее решению. Одно из понравившихся решений я решил привести тут.

Для того, чтобы запускать свои тесты, нужно создать контроллер следующего содержания:


( Читать дальше )

Как сделать ZIP архив средствами PHP

Многие думают, что создать ZIP архив средствами PHP сложно. На самом деле это не так. Все, что нужно — это несколько строк кода и готовая библиотека PclZip.lib.

Алгоритм работы с библиотекой следующий:


( Читать дальше )
  • 0
  • 23 ноября 2009, 06:09
  • admin
  • 1

Как реализовать Autoload в Kohana 2.2 и выше

Как известно, начиная с версии 2.2 фреймворк Kohana больше не поддерживает библиотеку Loader. Поэтому у многих возникает вопрос: «А как, собственно говоря, теперь быть?»

Собственно, ничего страшного не произошло. Да, теперь нельзя использовать $this->load->library() синтаксис. Но что по сути делала данная функция? Две простых вещи — создавал новый экземпляр указанно класса (библиотеки) и размещала на него ссылку в свойстве текущего класса ($this->classname).


( Читать дальше )

WordPress. Публикация с помощью XML-RPC

Мне кажется, что развитие отечественной блогосферы идет семимильными шагами и недалек тот день, когда все русскоязычные фрилансеровские биржи будут в буквальном смысле завалены предложениями по разработке плагинов для известных блог-движков. Поэтому сегодня я хочу рассказать о том, как можно, не прилагая особых усилий, программно добавить пост к WordPress блогу используя XML-RPC API. По своему опыту скажу, что больше половины заказов, которые я выполнил на западной бирже RentACoder было связано именно с WordPress. Как известно, то что популярно на западе сейчас, через некоторое время становится популярным и в нашей стране.


( Читать дальше )