Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Ответ
 
Опции темы
Старый 11.06.2011, 21:00   #1
Заблокирован
 Разведчик
Аватар для Я убью:Frost:DD
 
Я убью:Frost:DD на правильном пути
Регистрация: 06.06.2011
Сообщений: 20
Популярность: 74
Сказал(а) спасибо: 65
Поблагодарили 32 раз(а) в 22 сообщениях
 
По умолчанию 9 супер полезных PHP сниппетов

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

Когда ваш проект не базируется на каком-то CMS или фрэймворке, то часто приходится самим кэшировать страницы. Следующий фрагмент кода прост до безобразия, но работает эффективно.01 <?php
02 // определяем имя и путь к файлу с кэшем
03 $cachefile = 'cached-files/'.date('M-d-Y').'.php';
04 // время хранения. Я поставил 5 часов.
05 $cachetime = 18000;
06 // Проверяем кэш на «свежесть». Если время ещё не вышло, то подключаем его.
07 if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
08 include($cachefile);
09 exit;
10 }
11 // если время уже прошло, даём загрузиться новому HTML
12 ob_start();
13 ?>
14 <html>
15 output all your html here.
16 </html>
17 <?php
18 // создаём новый кэш страницы
19 $fp = fopen($cachefile, 'w');
20 fwrite($fp, ob_get_contents());
21 fclose($fp);
22 ob_end_flush();
23 ?>

Расчёт дистанции PHP

Следующая функция довольно таки часто необходима в том или ином скрипте. Она вычисляет расстояние между пунктом A и B, используя долготу и ширину. Возвращает результат в милях, километрах, или в морских милях в зависимости от параметров.01 function distance($lat1, $lon1, $lat2, $lon2, $unit) {
02
03 $theta = $lon1 - $lon2;
04 $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
05 $dist = acos($dist);
06 $dist = rad2deg($dist);
07 $miles = $dist * 60 * 1.1515;
08 $unit = strtoupper($unit);
09
10 if ($unit == "K") {
11 return ($miles * 1.609344);
12 } else if ($unit == "N") {
13 return ($miles * 0.8684);
14 } else {
15 return $miles;
16 }
17 }


Использование:1 echo distance(32.9697, -96.80322, 29.46786, -98.53506, "k")." kilometers";

Конвертируем секунды во время (год, месяц, день, час…)

Теперь рассмотрим функцию, которая конвертирует секунды в другие временные форматы:01 function Sec2Time($time){
02 if(is_numeric($time)){
03 $value = array(
04 "years" => 0, "days" => 0, "hours" => 0,
05 "minutes" => 0, "seconds" => 0,
06 );
07 if($time >= 31556926){
08 $value["years"] = floor($time/31556926);
09 $time = ($time%31556926);
10 }
11 if($time >= 86400){
12 $value["days"] = floor($time/86400);
13 $time = ($time%86400);
14 }
15 if($time >= 3600){
16 $value["hours"] = floor($time/3600);
17 $time = ($time%3600);
18 }
19 if($time >= 60){
20 $value["minutes"] = floor($time/60);
21 $time = ($time%60);
22 }
23 $value["seconds"] = floor($time);
24 return (array) $value;
25 }else{
26 return (bool) FALSE;
27 }
28 }

Загрузка файла

Часто такие файлы, как mp3, открываются в различных плеерах в самих веб браузерах. Но если вам надо дать файл на скачку, то нет проблем: используйте следующий код.01 function downloadFile($file){
02 $file_name = $file;
03 $mime = 'application/force-download';
04 header('Pragma: public');
05 header('Expires: 0');
06 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
07 header('Cache-Control: private',false);
08 header('Content-Type: '.$mime);
09 header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
10 header('Content-Transfer-Encoding: binary');
11 header('Connection: close');
12 readfile($file_name);
13 exit();
14 }

Прогноз погоды через Google API

Вы знаете какая сегодня погода? Эти три строки кода помогут вам узнать это. Всё что вам нужно сделать, так это заменить ADDRESS на ваш адрес в первой строчке.1 $xml = simplexml_load_file('http://www.google.com/ig/api?weather=ADDRESS');
2 $information = $xml->xpath("/xml_api_reply/weather/current_conditions/condition");
3 echo $information[0]->attributes();

Простой PHP whois

Сервис Whois очень полезен для тех, кто хочет разузнать различную информацию о том или ином домене: хозяин, время создания, регистрации и т.д. Используя PHP команду whois из unix очень просто написать подобную функцию. Учтите то, что команда whois должна поддерживаться вашим веб сервером иначе ничего не выйдет.01 $domains = array('home.pl', 'w3c.org');
02
03 function creation_date($domain) {
04 $lines = explode("\n", `whois $domain`);
05 foreach($lines as $line) {
06 if(strpos(strtolower($line), 'created') !== false) {
07 return $line;
08 }
09 }
10
11 return false;
12 }
13
14 foreach($domains as $d) {
15 echo creation_date($d) . "\n";
16 }

Получаем координаты по заданному адресу

Благодаря Google Maps API, у разработчиков появилась возможность определять координаты места по адресу нахождения интересующего объекта. Следующая функция принимает адрес и возвращает массив содержащий широту и долготу.01 function getLatLong($address){
02 if (!is_string($address))die("All Addresses must be passed as a string");
03 $_url = sprintf('http://maps.google.com/maps?output=js&q=%s',rawurlencode($address));
04 $_result = false;
05 if($_result = file_get_contents($_url)) {
06 if(strpos($_result,'errortips') > 1 || strpos($_result,'Did you mean:') !== false) return false;
07 preg_match('!center:\s*{lat:\s*(-?\d+\.\d+),lng:\s*(-?\d+\.\d+)}!U', $_result, $_match);
08 $_coords['lat'] = $_match[1];
09 $_coords['long'] = $_match[2];
10 }
11 return $_coords;
12 }

Получаем favicon используя PHP и Google

В наши дни, веб сайты часто используют сторонние favicon. Для решения подобной задачи нам поможет Google и PHP.1 function get_favicon($url){
2 $url = str_replace("http://",'',$url);
3 return "http://www.google.com/s2/favicons?domain=".$url;
4 }

Вычисляем комиссию Paypal

Ох уж эти комиссии Paypal. Все, кто когда либо имел дело с этой системой знает что это такое. Вашему вниманию представляю код, который вычислит их для вас. Ввести нужно только сумму:01 function paypalFees($sub_total, $round_fee) {
02
03 // Начальные параметры
04 $fee_percent = '3.4'; // процент за транзакцию (3.4% in UK)
05 $fee_cash = '0.20'; // сумма за транзакцию (£0.20 in UK)
06
07 // Вычисление комиссии
08 $paypal_fee = ((($sub_total / 100) * $fee_percent) + $fee_cash);
09
10 if ($round_fee == true) {
11 $paypal_fee = ceil($paypal_fee);
12 }
13
14 // вычисляем Grand Total
15 $grand_total = ($sub_total + $paypal_fee);
16
17 // перевод в цифры
18 $sub_total = number_format($sub_total, 2, '.', ',');
19 $paypal_fee = number_format($paypal_fee, 2, '.', ',');
20 $grand_total = number_format($grand_total, 2, '.', ',');
21
22 return array('grand_total'=>$grand_total, 'paypal_fee'=>$paypal_fee, 'sub_total'=>$sub_total);
23 }
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
ПодпольщикPB (12.06.2011), ololoshnik212 (11.06.2011)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Файл] 7 полезных плагинов object Софт 2 31.05.2012 17:40
[Скрипт] 2 полезных скрипта... фывраль Боты, скрипты и прочий софт для Aion 26 13.10.2011 00:51
Каталог полезных тем FFForever Rising Force Online 0 01.06.2009 08:19

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 18:06.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net