Рубрики
PHP

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

/*
     * @param $lat1 float $value <p>Широта 1-й точки</p>
     * @param $lng1 float $value <p>Долгота 1-й точки</p>
     * @param $lat2 float $value <p>Широта 2-й точки</p>
     * @param $lng2 float $value <p>Долгота 2-й точки</p>
     * @return float value растояние в метрах
     */
    function calculateDistance($lat1, $lng1, $lat2, $lng2)
    {
        $earthRadius = 6378137;

        $lat1 = deg2rad($lat1);
        $lng1 = deg2rad($lng1);
        $lat2 = deg2rad($lat2);
        $lng2 = deg2rad($lng2);

        return round($earthRadius * acos(cos($lat1) * cos($lat2) * cos($lng1 - $lng2) + sin($lat1) * sin($lat2)));
    }
Рубрики
JavaScript

Canvas сохранить и загрузить изображение

Инициализация canvas

var canvas = document.getElementById("sig-canvas");
canvas.width = canvas.width;
var ctx = canvas.getContext("2d");
ctx.strokeStyle = "#222222";
ctx.lineWidth = 4;

Загрузка изображения

var img = new Image;
img.onload = function(){
  ctx.drawImage(img,0,0); 
};
img.src = sig-dataUrl; 

Сохранение изображения

document.getElementById("sig-dataUrl").innerHTML = canvas.toDataURL();
Рубрики
PHP

Перевод UTF-8 в ISO-8859-15

function Utf8ToIsoDataStruct(&$data, $checkStringsIfText=true) {


		if (is_object($data) || is_array($data)) {

			foreach($data as $key => $property) {
				if (is_string($property)) {
					
					$propertyDecoded =  mb_convert_encoding($property, "ISO-8859-15", "UTF-8");
					
					if ($checkStringsIfText) {
						if (self::isText($propertyDecoded)) {
							$propertyResult = $propertyDecoded;
						} else {
							$propertyResult = $property;
						}
					} else {
						$propertyResult = $propertyDecoded;
					}				
					
					if (is_object($data)) {						
						$data->{$key} = $propertyResult;						
					} elseif (is_array($data)) {						
						$data[$key] = $propertyResult;						
					}

				} elseif (is_array($property) || is_object($property)) {
					if (is_object($data)) {
						self::Utf8ToIsoDataStruct($data->{$key}, $checkStringsIfText);
					} elseif (is_array($data)) {
						self::Utf8ToIsoDataStruct($data[$key], $checkStringsIfText);
					}
				}

			}

		}
	}
Рубрики
JavaScript

Возможность открытия только одной копии сайта

$(document).ready(function(){
  counter = localStorage.getItem("t_counter");
  
  if( counter == null){
    localStorage.setItem("t_counter",1);
    counter = 1;
  }
  my_v = parseInt(counter)+1;
  localStorage.setItem("t_counter",my_v);
  
   $(window).bind('storage', function (e) {
    if (my_v < localStorage.getItem("t_counter")){
        window.close();
    }
  });
 
});
Рубрики
HTML

Бесплатные HTML шаблоны

https://html5up.net/

Рубрики
HTML

Бесплатные HTML шаблоны

https://colorlib.com/wp/templates/