Jul 10, 2011

Top 10 PHP snippets

Simple page caching using PHP


Implementing page cache on a website is the best thing to speed up the site. Using this function will help getting the page cache work.
[php]
<?php
// define the path and name of cached file
$cachefile = 'cached-files/'.date('M-d-Y').'.php';
// define how long we want to keep the file in seconds. I set mine to 5 hours.
$cachetime = 18000;
// Check if the cached file is still fresh. If it is, serve it up and exit.
if (file_exists($cachefile) &amp;&amp; time() - $cachetime <filemtime($cachefile)) {
include($cachefile);
exit;
}
// if there is either no file OR the file to too old, render the page and capture the HTML.
ob_start();
?>
<html>
output all your html here.
</html>
<?php
// We're done! Save the cached content to a file
$fp = fopen($cachefile, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
// finally send browser output
ob_end_flush();
?>[/php]



How to Calculate distance measurement in PHP


This Function will calculate distance from one point to another using longitudes and latitudes. This function returns the output in miles, kilometers, or nautical miles.

[php]function distance($lat1, $lon1, $lat2, $lon2, $unit) {

$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);

if ($unit == "K") {
return ($miles * 1.609344);
} else if ($unit == "N") {
return ($miles * 0.8684);
} else {
return $miles;
}
}[/php]
Usage:
[php]echo distance(32.9697, -96.80322, 29.46786, -98.53506, "k")." kilometers";[/php]


Conversion of  seconds into time (years, months, days, hours…)


Following function will convert seconds into years, months, days, hours.
[php]function Sec2Time($time){
if(is_numeric($time)){
$value = array(
"years" =>0, "days" => 0, "hours" => 0,
"minutes" => 0, "seconds" => 0,
);
if($time >= 31556926){
$value["years"] = floor($time/31556926);
$time = ($time%31556926);
}
if($time >= 86400){
$value["days"] = floor($time/86400);
$time = ($time%86400);
}
if($time >= 3600){
$value["hours"] = floor($time/3600);
$time = ($time%3600);
}
if($time >= 60){
$value["minutes"] = floor($time/60);
$time = ($time%60);
}
$value["seconds"] = floor($time);
return (array) $value;
}else{
return (bool) FALSE;
}
}[/php]


Force a file to download


Use PHP to force a file to download.
Use the following function for that.
[php]function downloadFile($file){
$file_name = $file;
$mime = 'application/force-download';
header('Pragma: public'); // required
header('Expires: 0'); // no cache
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
header('Content-Transfer-Encoding: binary');
header('Connection: close');
readfile($file_name); // push it out
exit();
}[/php]


Using Google API, get whether stats.



Get the current whether information of your city or any other, using Google API. In the code below, edit the line 1 code, and replace address with your desire location.
[php]$xml = simplexml_load_file('http://www.google.com/ig/api?weather=ADDRESS');
$information = $xml->xpath("/xml_api_reply/weather/current_conditions/condition");
echo $information[0]->attributes();[/php]


Create a basic PHP WHOIS



WHOIS service is used to get the details of a domain name, domain owner, creation date, registrar etc. WIth the help of PHP and whois unix, it is extremely easy to get the function working.
REMEMBER:the WHOIS unix command must be installed on your website server for getting this code to work.
[php]$domains = array('home.pl', 'w3c.org');

function creation_date($domain) {
$lines = explode("\n", `whois $domain`);
foreach($lines as $line) {
if(strpos(strtolower($line), 'created') !== false) {
return $line;
}
}

return false;
}

foreach($domains as $d) {
echo creation_date($d) . "\n";
}[/php]



Again using Google API to get the longitude and latitude of an area.



Just follow the below function for getting the Latitude and longitude.
[php]function getLatLong($address){
if (!is_string($address))die("All Addresses must be passed as a string");
$_url = sprintf('http://maps.google.com/maps?output=js&amp;q=%s',rawurlencode($address));
$_result = false;
if($_result = file_get_contents($_url)) {
if(strpos($_result,'errortips') >1 || strpos($_result,'Did you mean:') !== false) return false;
preg_match('!center:\s*{lat:\s*(-?\d+\.\d+),lng:\s*(-?\d+\.\d+)}!U', $_result, $_match);
$_coords['lat'] = $_match[1];
$_coords['long'] = $_match[2];
}
return $_coords;
}[/php]


Get the favicon of a domain by using simple PHP and Google



[php]function get_favicon($url){
$url = str_replace("http://",'',$url);
return "http://www.google.com/s2/favicons?domain=".$url;
}[/php]


How to Calculate Paypal fees?



Want to calculate your paypal fees? then use the below function
[php]function paypalFees($sub_total, $round_fee) {

// Set Fee Rate Variables
$fee_percent = '3.4'; // Paypal's percentage rate per transaction (3.4% in UK)
$fee_cash = '0.20'; // Paypal's set cash amount per transaction (£0.20 in UK)

// Calculate Fees
$paypal_fee = ((($sub_total / 100) * $fee_percent) + $fee_cash);

if ($round_fee == true) {
$paypal_fee = ceil($paypal_fee);
}

// Calculate Grand Total
$grand_total = ($sub_total + $paypal_fee);

// Tidy Up Numbers
$sub_total = number_format($sub_total, 2, '.', ',');
$paypal_fee = number_format($paypal_fee, 2, '.', ',');
$grand_total = number_format($grand_total, 2, '.', ',');

// Return Array
return array('grand_total'=>$grand_total, 'paypal_fee'=>$paypal_fee, 'sub_total'=>$sub_total);
}
<?php
// define the path and name of cached file
$cachefile = 'cached-files/'.date('M-d-Y').'.php';
// define how long we want to keep the file in seconds. I set mine to 5 hours.
$cachetime = 18000;
// Check if the cached file is still fresh. If it is, serve it up and exit.
if (file_exists($cachefile) &amp;&amp; time() - $cachetime <filemtime($cachefile)) {
include($cachefile);
exit;
}
// if there is either no file OR the file to too old, render the page and capture the HTML.
ob_start();
?>
<html>
output all your html here.
</html>
<?php
// We're done! Save the cached content to a file
$fp = fopen($cachefile, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
// finally send browser output
ob_end_flush();
?>[/php]

No comments :

Post a Comment