Создаем Ajax конвертер валют
Помимо основных функций поисковой системы Google предоставляет ещё и множество других услуг. Одна из них это калькулятор с расширенными возможностями. Как это можно использовать узнаете в этой статье.
Давайте начнём. Создайте новый файл index.php и вставьте следующий код:У нас 2 выпадающих меню с наименованиями валют, поле для суммы и кнопка. Ниже div с id results, который будет отображать результаты.
Теперь сделаем AJAX запрос получения и отображения результата конвертирования:
$(document).ready(function() {
$('#submit').click(function(){
// получаем значения
var amount = $('#amount').val();
var from = $('#from').val();
var to = $('#to').val();
var params = "amount=" + amount + "&from=" + from + "&to=" + to;
$.ajax({
type: "POST",
url: "convert.php",
data: params,
success: function(data){
$('#results').html(data);
}
});
});
});
Мы делаем ajax запрос к файлу convert.php и если всё прошло успешно выводим результат в div.
А вот и convert.php
// фильтруем входящие данные filter_input
$amount = filter_input(INPUT_POST, 'amount', FILTER_VALIDATE_INT);
$from = filter_input(INPUT_POST, 'from', FILTER_SANITIZE_SPECIAL_CHARS);
$to = filter_input(INPUT_POST, 'to', FILTER_SANITIZE_SPECIAL_CHARS);
// фомирования сроки параметров для запроса
$encoded_string = urlencode($amount) . urlencode($from) . '%3D%3F' . urlencode($to);
$url = 'http://www.google.com/ig/calculator?hl=en&q='. $encoded_string;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
$results = curl_exec($ch);
// это функция json_decode для счастливых обладателей PHP < 5.2.0
// взято с php.net
$comment = false;
$out = '$x=';
for ($i=0; $i<strlen($results); $i++) {
if (!$comment) {
if ($results[$i] == '{') $out .= ' array(';
else if ($results[$i] == '}') $out .= ')';
else if ($results[$i] == ':') $out .= '=>';
else $out .= $results[$i];
} else $out .= $results[$i];
if ($results[$i] == '"') $comment = !$comment;
}
// формирование переменной $x, которая содержит декодированный массив
echo eval($out . ';');
echo $x['lhs'] . ' = ' . $x['rhs'];
Этот код в принципе не сложный, но я бы хотел пояснить вот что:
$amount = filter_input(INPUT_POST, 'amount', FILTER_VALIDATE_INT); $from = filter_input(INPUT_POST, 'from', FILTER_SANITIZE_SPECIAL_CHARS); $to = filter_input(INPUT_POST, 'to', FILTER_SANITIZE_SPECIAL_CHARS);
Этот код действительно интересный. Он работает только начиная с PHP 5.2.0. Эта функция с лёгкостью фильтрует данные.
Её можно использовать как для неизвестных ресурсов, так и для введённых пользователем данных.
Благодаря filter_input вы можете фильтровать:
- INPUT_GET
- INPUT_POST
- INPUT_COOKIE
- INPUT_ENV
- INPUT_SERVER
Если фильтрация произошла успешно, функция вернёт чистое значение. Если произойдёт ошибка, то FALSE. NULL если не заданы параметры.
Готово!
Последние уроки категории:
Установка jQuery плагина - jDigiClock - Digital Clock
jDigiClock — интересный плагин, выполненный на jQuery. Вдохновением для данного плагина стал виджет Hero Clock на HTC. Плагин может показывать цифровое время и погоду, достаточно удобно настраивается и его легко устанавливать.
Русско-английский переводчик используя Google Ajax API
Google предоставляет разработчикам массу возможностей для работы со своими сервисами. Как вы наверное поняли из названия поста, я буду использовать Google AJAX API. Что же это такое и для чего это нужно можно прочитать здесь и здесь. Для работы нам понадобятся: php и jQuery.
Создаем Ajax конвертер валют
Помимо основных функций поисковой системы Google предоставляет ещё и множество других услуг. Одна из них это калькулятор с расширенными возможностями. Как это можно использовать узнаете в этой статье.




Комментарии: