Calculate the distance between two coordinates When we need to measure the distance between two points, we may use one of the following formulas: Haversine formula or Vincenty’s formula. There are two appropriately named functions: 01 function haversineGreatCircleDistance($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000) { 02 // convert from degrees to radians 03 $latFrom = deg2rad($latitudeFrom); 04 $lonFrom = deg2rad($longitudeFrom); 05 $latTo = deg2rad($latitudeTo); 06 $lonTo = deg2rad($longitudeTo); 07 08 $latDelta = $latTo - $latFrom; 09 $lonDelta = $lonTo - $lonFrom; 10 11 $angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) + 12 cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2))); 13 return $angle * $earthRadius; 14 } 15 16 public static function vincentyGreatCircleDistance($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000) { 17 // convert from degrees to radians 18 $latFrom = deg2rad($latitudeFrom); 19 $lonFrom = deg2rad($longitudeFrom); 20 $latTo = deg2rad($latitudeTo); 21 $lonTo = deg2rad($longitudeTo); 22 23 $lonDelta = $lonTo - $lonFrom; 24 $a = pow(cos($latTo) * sin($lonDelta), 2) + 25 pow(cos($latFrom) * sin($latTo) - sin($latFrom) * cos($latTo) * cos($lonDelta), 2); 26 $b = sin($latFrom) * sin($latTo) + cos($latFrom) * cos($latTo) * cos($lonDelta); 27 28 $angle = atan2(sqrt($a), $b); 29 return $angle * $earthRadius; 30 } Both functions use the following parameters: float $latitudeFrom – Latitude of start point in [deg decimal] float $longitudeFrom – Longitude of start point in [deg decimal] float $latitudeTo – Latitude of target point in [deg decimal] float $longitudeTo – Longitude of target point in [deg decimal] float $earthRadius – Mean earth radius in miles Functions return – (float) Distance between points in miles (same as earthRadius) Email debug PHP errors 01 function errorHandler($sMessage = '', $aVars = array()) { 02 03 $sScript = $_SERVER['PHP_SELF']; 04 $sParams = print_r($_REQUEST, true); 05 06 $sVars = print_r($aVars, true); 07 08 $aBackTrace = debug_backtrace(); 09 unset($aBackTrace[0]); 10 $sBackTrace = print_r($aBackTrace, true); 11 12 $sExplanation = <<<EOF 13 <p>Additional explanation: {$sMessage}</p> 14 <p>Additional variables: <pre>{$sVars}</pre></p><hr /> 15 <p>Called script: {$sScript}</p> 16 <p>Request parameters: <pre>{$sParams}</pre></p><hr /> 17 <p>Debug backtrace:</p> 18 <pre>{$sBackTrace}</pre> 19 EOF; 20 21 $sHeader = "Subject: Error occurred\r\nContent-type: text/html; charset=UTF-8\r\n"; 22 error_log($sExplanation, 1, 'admin@example.com', $sHeader); 23 } This function is to email you about all occured errors on your website (this is much better instead of displaying it to the public). There are only two optional params: string $sMessage – Custom message array $aVars – Additional array to be sent by email Convert PDF to JPG 1 function pdfToJpg($pdf, $jpg) { 2 $im = new Imagick(); 3 $im->setResolution(300,300); 4 $im->readimage($pdf); 5 $im->setImageFormat('jpeg'); 6 $im->writeImage($jpg); 7 $im->clear(); 8 $im->destroy(); 9 } This function is to convert PDF files into image file. It takes two params: string $pdf – Path to the initial PDF file string $jpg – Path to the image file Get age by birth date 01 function getAge($birthdate = '0000-00-00') { 02 if ($birthdate == '0000-00-00') return 'Unknown'; 03 04 $bits = explode('-', $birthdate); 05 $age = date('Y') - $bits[0] - 1; 06 07 $arr[1] = 'm'; 08 $arr[2] = 'd'; 09 10 for ($i = 1; $arr[$i]; $i++) { 11 $n = date($arr[$i]); 12 if ($n < $bits[$i]) 13 break; 14 if ($n > $bits[$i]) { 15 ++$age; 16 break; 17 } 18 } 19 return $age; 20 } This function is to get age by given birthday (format: YYYY-MM-DD). Extract files from ZIP archive view sourceprint? 01 function unzipArchive($file, $destinationFolder){ 02 // create ZipArchive object 03 $zip = new ZipArchive() ; 04 // open archive 05 if ($zip->open($file) !== TRUE) { 06 die ('Could not open archive'); 07 } 08 // extract it's content to destination folder 09 $zip->extractTo($destinationFolder); 10 // close archive 11 $zip->close(); 12 } This function takes two parameters: string $file – Path to the initial ZIP file string $destinationFolder – Path to the destination folder for files Conclusion Today is all, thank you for your attention, do not forget to visit us from time to time.