Показаны сообщения с ярлыком PHP. Показать все сообщения
Показаны сообщения с ярлыком PHP. Показать все сообщения

среда, 5 июня 2013 г.

Расстояние между двумя точками

Нужно рассчитать расстояние между двумя точками?
Функция считает расстояние в километрах, милях и тп между двумя точками. Каждая точка задается широтой (latitude) и долготой (longitude).

вторник, 28 августа 2012 г.

Все media типы (Content-Type)

В довесок к статье про media-типы в php, вот вам массив с полным собранием типов.
$mimes = array( 'hqx' => 'application/mac-binhex40',
'cpt' => 'application/mac-compactpro',
'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'),
'bin' => 'application/macbinary',
'dms' => 'application/octet-stream',
'lha' => 'application/octet-stream',
'lzh' => 'application/octet-stream',
'exe' => array('application/octet-stream', 'application/x-msdownload'),
'class' => 'application/octet-stream',
'psd' => 'application/x-photoshop',
'so' => 'application/octet-stream',
'sea' => 'application/octet-stream',
'dll' => 'application/octet-stream',
'oda' => 'application/oda',
'pdf' => array('application/pdf', 'application/x-download'),
'ai' => 'application/postscript',
'eps' => 'application/postscript',
'ps' => 'application/postscript',
'smi' => 'application/smil',
'smil' => 'application/smil',
'mif' => 'application/vnd.mif',
'xls' => array('application/excel', 'application/vnd.ms-excel', 'application/msexcel'),
'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint'),
'wbxml' => 'application/wbxml',
'wmlc' => 'application/wmlc',
'dcr' => 'application/x-director',
'dir' => 'application/x-director',
'dxr' => 'application/x-director',
'dvi' => 'application/x-dvi',
'gtar' => 'application/x-gtar',
'gz' => 'application/x-gzip',
'php' => 'application/x-httpd-php',
'php4' => 'application/x-httpd-php',
'php3' => 'application/x-httpd-php',
'phtml' => 'application/x-httpd-php',
'phps' => 'application/x-httpd-php-source',
'js' => 'application/x-javascript',
'swf' => 'application/x-shockwave-flash',
'sit' => 'application/x-stuffit',
'tar' => 'application/x-tar',
'tgz' => array('application/x-tar', 'application/x-gzip-compressed'),
'xhtml' => 'application/xhtml+xml',
'xht' => 'application/xhtml+xml',
'zip' =>  array('application/x-zip', 'application/zip', 'application/x-zip-compressed'),
'mid' => 'audio/midi',
'midi' => 'audio/midi',
'mpga' => 'audio/mpeg',
'mp2' => 'audio/mpeg',
'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'),
'aif' => 'audio/x-aiff',
'aiff' => 'audio/x-aiff',
'aifc' => 'audio/x-aiff',
'ram' => 'audio/x-pn-realaudio',
'rm' => 'audio/x-pn-realaudio',
'rpm' => 'audio/x-pn-realaudio-plugin',
'ra' => 'audio/x-realaudio',
'rv' => 'video/vnd.rn-realvideo',
'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'),
'bmp' => array('image/bmp', 'image/x-windows-bmp'),
'gif' => 'image/gif',
'jpeg' => array('image/jpeg', 'image/pjpeg'),
'jpg' => array('image/jpeg', 'image/pjpeg'),
'jpe' => array('image/jpeg', 'image/pjpeg'),
'png' => array('image/png',  'image/x-png'),
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'css' => 'text/css',
'html' => 'text/html',
'htm' => 'text/html',
'shtml' => 'text/html',
'txt' => 'text/plain',
'text' => 'text/plain',
'log' => array('text/plain', 'text/x-log'),
'rtx' => 'text/richtext',
'rtf' => 'text/rtf',
'xml' => 'text/xml',
'xsl' => 'text/xml',
'mpeg' => 'video/mpeg',
'mpg' => 'video/mpeg',
'mpe' => 'video/mpeg',
'qt' => 'video/quicktime',
'mov' => 'video/quicktime',
'avi' => 'video/x-msvideo',
'movie' => 'video/x-sgi-movie',
'doc' => 'application/msword',
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'word' => array('application/msword', 'application/octet-stream'),
'xl' => 'application/excel',
'eml' => 'message/rfc822',
'json' => array('application/json', 'text/json')
);

вторник, 14 августа 2012 г.

Архивирование файлов на php

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

HTML
<form name="zips" method="post">
<input type="checkbox" name="files[]" value="flowers.jpg" />
<img src="files/image.png" />
flowers.jpg
<input type="checkbox" name="files[]" value="fun.jpg" />
<img src="files/image.png" />
fun.jpg
........
<input type="submit" name="createpdf" value="Скачать ZIP" />&nbsp;
<input type="reset" name="reset" value="Сбросить" />
</form>


PHP
Следующий код конвертирует выбранные файлы в ZIP формат.
<?php
$error = "";
if(isset($_POST['createpdf']))
{
$post = $_POST;
$file_folder = "files/"; // папка для загрузки файлов
if(extension_loaded('zip'))
{
// проверяем подгрузку расширения
if(isset($post['files']) and count($post['files']) > 0)
{
// проверяем выбранные файлы
$zip = new ZipArchive(); // подгружаем zip библиотеку
$zip_name = time().".zip"; // имя файла - текущее время
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE)
{
// открываем zip
$error .= "* Ошибка создания файла";
}
foreach($post['files'] as $file)
{
$zip->addFile($file_folder.$file); // добавление файлов в zip
}
$zip->close();
if(file_exists($zip_name))
{
// отправляем файлы на загрузку
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="'.$zip_name.'"');
readfile($zip_name);
// убираем файлы из кэша
unlink($zip_name);
}
}
else
$error .= "* Выберите файл!";
}
else
$error .= "* Нет расширения";
}
?>

среда, 25 июля 2012 г.

Подтверждение формы без перезагрузки страницы

Привет, %username%!
В этом примере я покажу тебе, как при помощи аякс можно создать форму, которая при подтверждении данных не будет перезагружать страницу!

JS:
Обратите внимание на dataString
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js">
</script>
<script type="text/javascript" >
$(function() {
$(".submit").click(function() {
var name = $("#name").val();
var username = $("#username").val();
var password = $("#password").val();
var gender = $("#gender").val();
var dataString = 'name='+ name + '&username=' + username + '&password=' + password + '&gender=' + gender;
if(name=='' || username=='' || password=='' || gender=='')
{
$('.success').fadeOut(200).hide();
$('.error').fadeOut(200).show();
}
else
{
$.ajax({
type: "POST",
url: "join.php",
data: dataString,
success: function(){
$('.success').fadeIn(200).show();
$('.error').fadeOut(200).hide();
}
});
}
return false;
});
}); </script>

HTML:
Сама форма:
<form method="post" name="form">
<ul><li>
<input id="name" name="name" type="text" />
</li><li>
<input id="username" name="username" type="text" />
</li><li>
<input id="password" name="password" type="password" />
</li><li>
<select id="gender" name="gender">
<option value="">Пол</option>
<option value="1">Муж</option>
<option value="2">Жен</option>
</select>
</li></ul>
<div >
<input type="submit" value="Submit" class="submit"/>
<span class="error" style="display:none"> Ошибка! Введите норм данные</span>
<span class="success" style="display:none"> Регистрация успешно завершена</span>
</div></form>

join.php
Именно этот код будет обрабатываться посредствам aJax. Т.е. при нажатии на кнопку 'submit' будет выполненно следуещее:
if($_POST){
$name=$_POST['name'];
$username=$_POST['username'];
$password=$_POST['password'];
$gender=$_POST['gender'];
mysql_query("*ваш sql запрос..");
}else { }
?>

вторник, 24 июля 2012 г.

PHP - скачивание файлов (а не открытие)

Поговорим о скачивании файлов. Думаю тема давно заезженная, но все же черкну пару строк.
К примеру, если оставить прямую ссылку на pgf файл, типа:
<a href='files/price1.pdf'>скачать</a>
то в современных браузерах файл сразу же в нем и откроется. В случаях, когда необходимо не открывать файл а качать - Content-type и Content-Disposition вам в помощь. Вот пример кода, для закачки файла, а не открытия:
header('Content-type: application/pdf');
header("Content-Disposition: attachment; filename=\"files/price1.pdf\"");
$x = fread(fopen("files/price1.pdf", "rb"), filesize("files/price1.pdf"));
echo $x;

Создаем пхп файл download.php и заливаем эти строки в него (предварительно, сомособой, изменив их).

Для множества файлов добавляем $_GET переменную id, вытаскиваем по ней название файла из БД и отправляем на загрузку.

Указание media-типа используется для передачи сведений о формате содержимого в HTTP-транзакциях. Клиенты используют media-типы в своих заголовках Accept для того, чтобы сообщить, в каких форматах они предпочитают принимать данные. Серверы используют media-типы в заголовках Content-Type, чтобы сообщить клиенту о том, в каком формате передается прилагаемое содержимое: то ли это HTML, который нужно форматировать, то ли это GIF или JPEG, требующий визуализации, то ли это данные в формате PDP, для которого нужно открывать внешнюю программу просмотра или использовать дополнительное приложение.

Список всех media-типов

пятница, 25 мая 2012 г.

Использование Gravatar в форме авторизации

Граватар —  глобально распознаваемый аватар. сервис, позволяющий интернет-пользователям хранить свой аватар на специальном сервере. Пользователь регистрируется на центральном сервере и сохраняет там свой аватар и адрес электронной почты. Когда он оставляет комментарий на сайте или блоге, поддерживающим Gravatar, и указывает свой адрес электронной почты, на стороне сайта вычисляется md5 хэш от почтового адреса и отправляется на сервер Gravatar, в ответ возвращается аватар пользователя. Таким образом система Gravatar позволяет использовать аватары без регистрации на сайте или блоге.
Я разработал простое и интересно окно авторизации с помощью граватара. Инджой!

четверг, 24 ноября 2011 г.

Создание капчи на PHP

В этом уроке я покажу вам как создать свою собственную капчу на PHP. Это очень простой пример: просто создание изображения с обычным шрифтом. И.. думаю все знают заем нужна это самая капча.

суббота, 19 ноября 2011 г.

SQL штуки [обновляется]

Всеобразные запросы и обращения к БД. Шпаргалка.

JOIN — оператор SQL, позволяющий соединять записи из двух таблиц базы данных. Входит в раздел FROM оператора SELECT и отдельно от него не используется.
Пример запроса:
SELECT * FROM sites JOIN tabs,st WHERE st.user_id =tabs.user_id and sites.id =st.site_id and st.user_id='$id' 

воскресенье, 13 ноября 2011 г.

Движок шаблонов Smarty

Эта статья посвящена основам управления движка шаблонов Smarty. Это простой пример для разработки в пхп. Разберем основные стандарты и штуки.
Smarty - это компилирующий обработчик шаблонов для PHP

Водяные знаки в php

Вы можете интегрировать эти функции в свой проект и при загрузке изображений оставлять копирайты на фотках.