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", что позволяет им корректно работать даже на нестандартных хостингах. Обновленные версии движков выложены на официальном сайте поддержки этих проектов.