XAMPP - еще один пакет для web-разработчика
Дата публикации: 04/02/2010
Достаточно давно я уже описывал пакет программ для web-разработчика в Mac OS X под названием MAMP. Он включает в себя набор программ, позволяющих эффективно разрабатывать динамические сайты с использованием Apache+PHP+MySQL. Пакет неплохой, но в бесплатной версии не позволяющий разрабатывать сложные сайты с завязкой на доменные имена. А это зачастую требуется, тем более что сейчас почти все сайты используют механизм формирования удобных URL-адресов с использованием модуля Apache mod_rewrite. Поэтому я предпринял дополнительные поиски и через некоторое время обнаружил схожий по функциональности и возможностям бесплатный набор для web-разработчика.
Пакет называется XAMPP, также включает в себя настроенные Apache+PHP+MySQL, но дополнительно в комплект входят также PERL и proFTPd. В отличие от MAMP, после некоторых настроек XAMPP позволяет локально организовать виртуальные домены и полноценно разрабатывать динамические сайты. А по интерфейсу и удобству управления он мне понравился даже больше, чем MAMP. Посредством управляющей утилиты, входящей в пакет, можно только запускать и останавливать сервера, но этого на самом деле вполне достаточно. При этом после запуска пакета из утилиты можно выйти, а сервера продолжат работать, что очень удобно.
Среда web-разработчика под Mac OS X
Дата публикации: 15/07/2009Если Вы занимаетесь разработкой сайтов, то вам необходим некоторый набор программ, включающий в себя web-сервер и ряд сопутствующих технологий. На данный момент самый популярный набор включает в себя Apache+PHP+MySQL. Под Windows есть замечательный проект "Денвер", который поддерживает упомянутые технологии и, будучи установленным в системе, позволяет сразу приступить к созданию динамических сайтов любой сложности.
Под Маком ситуация немного другая, но потребности в web-разработке те же самые. Потратив некоторое время на поиски решения под "Mac OS X", я нашел программный комплекс "MAMP" в двух инкарнациях. Первая - самая простая и позволяет работать только с одним хостом, но для задач изучения PHP или тестирования готовых движков вполне подходящая. Вторая же инкарнация обзавелась приставкой PRO и позволяет уже полноценно работать с любым количеством локальных хостов и прочими дополнительными вкусностями.

Для экспериментов я ограничился обычной версией. Как и большинство других программ под "Mac OS X", MAMP устанавливается простым перетаскиванием дистрибутива в папку приложений. После запуска MAMP автоматически отображает диалоговое окно для запуска или остановки web-сервера.
Если же говорить о конкретных версиях, то пакет MAMP включает в себя следующие программы:
- Web-сервер Apache 2
- PHP4 / PHP5 (на выбор) с рядом библиотек (GD2, FreeType и т.п.)
- Базы данных MySQL 5.0 и SQLite
- phpMyAdmin 2.11
- SQLiteManager
Этого вполне достаточно для настройки любого сложного сайта, использующего базу данных. Кстати, все настройки MAMP хранятся непосредственно внутри подпапки программы и не затрагивают схожие компоненты, встроенные в "MAC OS X".
Чтение текущего курса валют при помощи PHP
Дата публикации: 22/04/2009Возникла у меня необходимость в автоматическом режиме получать курс доллара и евро, чтобы использовать их на сайте для автоматического пересчета цен. Стал думать, как это можно сделать наименее затратным способом. В общем случае, конечно, можно вытащить эту информацию с любого сайта, транслирующего курс доллара - с того же RBC, скажем. Но логичнее всего все-таки брать информацию с первоисточника, т.е. с сайта Центробанка Российской Федерации. И тут оказалось, что сайт центробанка транслирует эту информацию в виде RSS-ленты! Причем можно узнать курс нескольких валют и на любую дату, включая также и текущие курсы валют. Подробное описание всех сервисов сайта для web-мастеров приведено на отдельной страничке, что очень мило с их стороны.
Понятное дело, что из RSS-потока уже гораздо проще вытаскивать нужную информацию. При этом, если у вас есть под рукой готовый парсер XML, то все вообще элементарно. Но мне нужно было достаточно простое и быстрое решение, поэтому я обошелся только обычными PHP-функциями и в конце-концов написал вот такой скрипт.
<?
// Чтение курса валют с сайта Центробанка РФ
$rates = "";
// Адрес странички на сайте Центробанка РФ для запроса курса валют
$url_request = "http://www.cbr.ru/scripts/XML_daily.asp";
// Читаем RSS-поток с данными о курсе валют в строку
$data = @file($url_request);
// Обрабатываем курсы валют только в случае успешной загрузки
if (!empty($data)) {
// Анализируем каждую строку в поисках идентификатора валюты
reset($data);
while(list($id, $string) = each($data)) {
// Убираем лишние пробелы и переводим строку в нижний регистр
$string = strtolower(trim($string));
// Определяем строку с кодом валюты и читаем курс обмена
if (substr($string, 1, 8) == "charcode") {
// Находим код валюты
$currency = strip_tags($string);
// Читаем курс валюты
$string = strtolower(trim($data[$id+3]));
// Добавляем найденное значение в список валют
if (substr($string, 1, 5) == "value") {
$rates[$currency] = str_replace(",",".", strip_tags($string));
}
}
}
}
?>
В результате выполнения данного фрагмента кода в массиве $rates окажутся курсы обмена для всех валют. Причем в качестве ключа будет выступать текстовый идентификатор валюты. Если будете использовать у себя этот фрагмент кода, то учтите, что в нем не учитывается номинал валюты. Это может быть критично, если вам нужны узнать, к примеру, курс шведской кроны или украинской грины, т.к. для них указывается стоимость за 10 единиц.
При реальном использовании сервиса с целью минимизации нагрузки на сервер и уменьшения задержек при загрузке собственных страничек лучше всего запускать данный скрипт автоматически раз в сутки и сохранять полученные данные во внутренних переменных. У меня сейчас сделано именно так, а запрашиваемые курсы сохраняются в локальной базе данных.
"Волшебные кавычки" в PHP
Дата публикации: 08/10/2008Как известно, PHP делает много дополнительной работы, предоставляя программисту уже обработанные данные. В частности, это относится к обработке данных, передаваемых в программу. Способ передачи может быть различным - это и заполненная форма и информация содержащаяся в "cookies" и загруженные пользователем файлы. Программист автоматически получает эти данные через переменные, которые создает PHP. Лучше всего для чтения данных введенных пользователем использовать специальные глобальные переменные:
$_GET, $_POST, $_COOKIE и $_REQUEST
Эти переменные представляют собой ассоциативные массивы, содержащие все переданные пользователем данные. Первые три, как понятно из их названия, содержат данные переданные тем или иным способом, а вот глобальная переменная $_REQUEST это объединенный массив из трех предыдущих переменных. При этом, при совпадении имен переменных, происходит их переопределение в порядке заданном в настройках PHP.
И есть одна тонкость при обработке значений переменных, содержащих в себе спецсимволы, к которым относятся: апостроф('), кавычки (") и обратный слеш (\). Такие спецсимволы должны экранироваться при помощи обратного слеша, чтобы показать, что в данном случае они выступают как символы, а не как элементы языка программирования.
Для просмотра полного текста заметки, перейдите по ссылке. Собственно говоря, то что описано далее в заметке это один из возможных способов решения проблемы, использованный в движках "Wikipad" и "Photopad", что позволяет им корректно работать даже на нестандартных хостингах. Обновленные версии движков выложены на официальном сайте поддержки этих проектов.