These PHP snippets are also very helpful and easy to learn for PHP beginners, so let’s get started
1. Send SMS
When developing Web or mobile applications, it is common to encounter the need to send SMS to users, either for login reasons or to send messages. The following PHP code implements the SMS function.
In order to send SMS in any language, you need an SMS Gateway. Most SMS will provide an API, which is used here
MSG91Act as SMS Gateway.
function send_sms($mobile,$msg) { $authKey = "XXXXXXXXXXX"; date_default_timezone_set("Asia/Kolkata"); $date = strftime("%Y-%m-%d %H:%M:%S"); //Multiple mobiles numbers separated by comma $mobileNumber = $mobile; //Sender ID,While using route4 sender id should be 6 characters long. $senderId = "IKOONK"; //Your message to send, Add URL encoding here. $message = urlencode($msg); //Define route $route = "template"; //Prepare you post parameters $postData = array( 'authkey' => $authKey, 'mobiles' => $mobileNumber, 'message' => $message, 'sender' => $senderId, 'route' => $route ); //API URL $url="https://control.msg91.com/sendhttp.php"; // init the resource $ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $postData //,CURLOPT_FOLLOWLOCATION => true )); //Ignore SSL certificate verification curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //get response $output = curl_exec($ch); //Print error if any if(curl_errno($ch)) { echo 'error:' . curl_error($ch); } curl_close($ch); }
$authKey = “XXXXXXXXXXX”; You need to enter your password, “$senderId = “IKOONK”; I need you to enter your SenderID. You need to specify a country code when entering a mobile number (for example, 1 for the United States, 91 for India).
Grammar:
<? php $message = "Hello World"; $mobile = "918112998787"; send_sms($mobile,$message); ? >
2. Send emails using Mandrill
MandrillSMTP is a powerful SMTP provider. Developers prefer to use a third-party SMTP provider for better delivery.
In the following function, you need to add the
Mandrill.php”In the same folder as a PHP file, so you can use TA to send emails.
function send_email($to_email,$subject,$message1) { require_once 'Mandrill.php'; $apikey = 'XXXXXXXXXX'; //specify your api key here $mandrill = new Mandrill($apikey); $message = new stdClass(); $message->html = $message1; $message->text = $message1; $message->subject = $subject; $message->from_email = "[email protected]"; //Sender Email $message->from_name = "KOONK"; //Sender Name $message->to = array(array("email" => $to_email)); $message->track_opens = true; $response = $mandrill->messages->send($message); }
$apikey = ‘XXXXXXXXXX’; Specify your API key here specify your API key (obtained from the Mandrill account).
Grammar:
<? php $to = "[email protected]"; $subject = "This is a test email"; $message = "Hello World!" ; send_email($to,$subject,$message); ? >
For best results, follow the Mandrill tutorial to configure DNS.
3. PHP functions: block SQL injection
SQL injectionOr SQLi’s common methods of attacking websites. Using the code below can help you prevent these tools.
function clean($input) { if (is_array($input)) { foreach ($input as $key => $val) { $output[$key] = clean($val); // $output[$key] = $this->clean($val); } } else { $output = (string) $input; // if magic quotes is on then use strip slashes if (get_magic_quotes_gpc()) { $output = stripslashes($output); } // $output = strip_tags($output); $output = htmlentities($output, ENT_QUOTES, 'UTF-8'); } // return the clean text return $output; }
Grammar:
<? php $text = "<script>alert(1)</script>"; $text = clean($text); echo $text; ? >
4. Check the user location
Using the following function, you can detect which city the user is visiting your site in
function detect_city($ip) { $default = 'UNKNOWN'; $curlopt_useragent = 'Mozilla / 5.0 (Windows; U; Windows NT 5.1; en-US; Rv :1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)'; $url = 'http://ipinfodb.com/ip_locator.php?ip=' . urlencode($ip); $ch = curl_init(); $curl_opt = array( CURLOPT_FOLLOWLOCATION => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $curlopt_useragent, CURLOPT_URL => $url, CURLOPT_TIMEOUT => 1, CURLOPT_REFERER => 'http://' . $_SERVER['HTTP_HOST'], ); curl_setopt_array($ch, $curl_opt); $content = curl_exec($ch); if (! is_null($curl_info)) { $curl_info = curl_getinfo($ch); } curl_close($ch); if ( preg_match('{<li>City : ([^<]*)</li>}i', $content, $regs) ) { $city = $regs[1]; } if ( preg_match('{<li>State/Province : ([^<]*)</li>}i', $content, $regs) ) { $state = $regs[1]; } if( $city! ='' && $state! ='' ){ $location = $city . ', ' . $state; return $location; }else{ return $default; }}
Grammar:
<? php $ip = $_SERVER['REMOTE_ADDR']; $city = detect_city($ip); echo $city; ? >
5. Obtain the Web page source code
You can get the HTML code for any Web page using the following functions
function display_sourcecode($url) { $lines = file($url); $output = ""; foreach ($lines as $line_num => $line) { // loop thru each line and prepend line numbers $output.= "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "\n"; }}
Grammar:
<? php $url = "http://blog.koonk.com"; $source = display_sourcecode($url); echo $source; ? >
6. Count people who like your Facebook page
function fb_fan_count($facebook_name) { $data = json_decode(file_get_contents("https://graph.facebook.com/".$facebook_name)); $likes = $data->likes; return $likes; }
Grammar:
<? php $page = "koonktechnologies"; $count = fb_fan_count($page); echo $count; ? >
7. Determine the dominant color of any image
function dominant_color($image) { $i = imagecreatefromjpeg($image); for ($x=0; $x<imagesx($i); $x++) { for ($y=0; $y<imagesy($i); $y++) { $rgb = imagecolorat($i,$x,$y); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> & 0xFF; $b = $rgb & 0xFF; $rTotal += $r; $gTotal += $g; $bTotal += $b; $total++; } } $rAverage = round($rTotal/$total); $gAverage = round($gTotal/$total); $bAverage = round($bTotal/$total); }
8. Whois query
Use the following functions to get the full details of any domain name user
function whois_query($domain) { // fix the domain name: $domain = strtolower(trim($domain)); $domain = preg_replace('/^http:\/\//i', '', $domain); $domain = preg_replace('/^www\./i', '', $domain); $domain = explode('/', $domain); $domain = trim($domain[0]); // split the TLD from domain name $_domain = explode('.', $domain); $lst = count($_domain)-1; $ext = $_domain[$lst]; // You find resources and lists // like these on wikipedia: // // http://de.wikipedia.org/wiki/Whois // $servers = array( "biz" => "whois.neulevel.biz", "com" => "whois.internic.net", "us" => "whois.nic.us", "coop" => "whois.nic.coop", "info" => "whois.nic.info", "name" => "whois.nic.name", "net" => "whois.internic.net", "gov" => "whois.nic.gov", "edu" => "whois.internic.net", "mil" => "rs.internic.net", "int" => "whois.iana.org", "ac" => "whois.nic.ac", "ae" => "whois.uaenic.ae", "at" => "whois.ripe.net", "au" => "whois.aunic.net", "be" => "whois.dns.be", "bg" => "whois.ripe.net", "br" => "whois.registro.br", "bz" => "whois.belizenic.bz", "ca" => "whois.cira.ca", "cc" => "whois.nic.cc", "ch" => "whois.nic.ch", "cl" => "whois.nic.cl", "cn" => "whois.cnnic.net.cn", "cz" => "whois.nic.cz", "de" => "whois.nic.de", "fr" => "whois.nic.fr", "hu" => "whois.nic.hu", "ie" => "whois.domainregistry.ie", "il" => "whois.isoc.org.il", "in" => "whois.ncst.ernet.in", "ir" => "whois.nic.ir", "mc" => "whois.ripe.net", "to" => "whois.tonic.to", "tv" => "whois.tv", "ru" => "whois.ripn.net", "org" => "whois.pir.org", "aero" => "whois.information.aero", "nl" => "whois.domain-registry.nl" ); if (! isset($servers[$ext])){ die('Error: No matching nic server found! '); } $nic_server = $servers[$ext]; $output = ''; // connect to whois server: if ($conn = fsockopen ($nic_server, 43)) { fputs($conn, $domain."\r\n"); while(! feof($conn)) { $output .= fgets($conn,128); } fclose($conn); } else { die('Error: Could not connect to ' . $nic_server . '! '); } return $output; }
Grammar:
<? php $domain = "http://www.blog.koonk.com"; $result = whois_query($domain); print_r($result); ? >
9. Verify the email address
Sometimes, when filling out a form on a website, the user may enter the wrong email address, this function can verify that the email address is valid.
function is_validemail($email) { $check = 0; if(filter_var($email,FILTER_VALIDATE_EMAIL)) { $check = 1; } return $check; } Syntax: <? php $email = "[email protected]"; $check = is_validemail($email); echo $check; // If the output is 1, then email is valid. ? >
10. Obtain the real IP address of the user
function getRealIpAddr() { if (! emptyempty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (! emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } return $ip; }
Grammar:
<? php $ip = getRealIpAddr(); echo $ip; ? >
11. Transform urls: From strings to hyperlinks
If you’re developing a forum, blog, or regular form submission, many times you’ll need users to visit a website. Using this function, the URL string is automatically converted to a hyperlink.
function makeClickableLinks($text) { $text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)', '<a href="\1">\1</a>', $text); $text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)', '\1<a href="http://\2">\2</a>', $text); (_ $text = the eregi_replace (' (0-9 a - z -] + @ ([0-9 a-z] [0-9 a-z -] +.) + [a-z] {2, 3}) ', '< a href = "mailto: \ 1" > 1 < / a > \', $text); Return $text;} <?php $text = "This is my first post on http://blog.koonk.com"; $text = makeClickableLinks($text); echo $text; ?>
12. Block multiple ips from accessing your site
This code snippet makes it easy for you to block certain IP addresses from accessing your site
if ( ! File_exists (' blocked_ips. TXT)) {$deny_ips = array (' 127.0.0.1 ', '192.168.1.1', '83.76.27.9', '192.168.1.163'); } else { $deny_ips = file('blocked_ips.txt'); } // read user ip adress: $ip = isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : ''; // search current IP in $deny_ips array if ( (array_search($ip, $deny_ips))! == FALSE ) { // address is blocked: echo 'Your IP adress ('.$ip.') was blocked! '; exit; }
13. Mandatory file downloads
If you need to download a specific file without opening a new window, the following code snippet can help.
function force_download($file) { $dir = "../log/exports/"; if ((isset($file))&&(file_exists($dir.$file))) { header("Content-type: application/force-download"); header('Content-Disposition: inline; filename="' . $dir.$file . '"'); header("Content-Transfer-Encoding: Binary"); header("Content-length: ".filesize($dir.$file)); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $file . '"'); readfile("$dir$file"); } else { echo "No file selected"; } }
Grammar:
<php force_download("image.jpg"); ? >
Create JSON data
Using the following PHP snippet to create JSON data, you can easily create Web services for mobile applications
$json_data = array ('id'=>1,'name'=>"Mohit"); echo json_encode($json_data);
15. Compress the ZIP file
Zip files can be compressed instantly using the following PHP snippet
function create_zip($files = array(),$destination = '',$overwrite = false) { //if the zip file already exists and overwrite is false, return false if(file_exists($destination) && ! $overwrite) { return false; } //vars $valid_files = array(); //if files were passed in... if(is_array($files)) { //cycle through each file foreach($files as $file) { //make sure the file exists if(file_exists($file)) { $valid_files[] = $file; } } } //if we have good files... if(count($valid_files)) { //create the archive $zip = new ZipArchive(); if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) ! == true) { return false; } //add the files foreach($valid_files as $file) { $zip->addFile($file,$file); } //debug //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status; //close the zip -- done! $zip->close(); //check to make sure the file exists return file_exists($destination); } else { return false; }} syntax: <? php $files=array('file1.jpg', 'file2.jpg', 'file3.gif'); create_zip($files, 'myzipfile.zip', true); ? >
16. Decompress the files
function unzip($location,$newLocation) { if(exec("unzip $location",$arr)){ mkdir($newLocation); for($i = 1; $i< count($arr); $i++){ $file = trim(preg_replace("~inflating: ~","",$arr[$i])); copy($location.'/'.$file,$newLocation.'/'.$file); unlink($location.'/'.$file); } return TRUE; }else{ return FALSE; }}
Grammar:
<? php unzip('test.zip','unziped/test'); //File would be unzipped in unziped/test folder ? >
17. Zoom in and out
function resize_image($filename, $tmpname, $xmax, $ymax) { $ext = explode(".", $filename); $ext = $ext[count($ext)-1]; if($ext == "jpg" || $ext == "jpeg") $im = imagecreatefromjpeg($tmpname); elseif($ext == "png") $im = imagecreatefrompng($tmpname); elseif($ext == "gif") $im = imagecreatefromgif($tmpname); $x = imagesx($im); $y = imagesy($im); if($x <= $xmax && $y <= $ymax) return $im; if($x >= $y) { $newx = $xmax; $newy = $newx * $y / $x; } else { $newy = $ymax; $newx = $x / $y * $newy; } $im2 = imagecreatetruecolor($newx, $newy); imagecopyresized($im2, $im, 0, 0, 0, 0, floor($newx), floor($newy), $x, $y); return $im2; }
18. Use mail() to send messages
Earlier we provided a PHP snippet of how to use Mandrill to send mail, but if you don’t want to use a third party service, you can use the following PHP snippet.
function send_mail($to,$subject,$body) { $headers = "From: KOONK\r\n"; $headers .= "Reply-To: [email protected]\r\n"; $headers .= "Return-Path: [email protected]\r\n"; $headers .= "X-Mailer: PHP5\n"; $headers.= 'MIME-Version: 1.0'. "\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; mail($to,$subject,$body,$headers); } Syntax: <? php $to = "[email protected]"; $subject = "This is a test mail"; $body = "Hello World!" ; send_mail($to,$subject,$body); ? >
Convert seconds to days, hours, and minutes
function secsToStr($secs) { if($secs>=86400){$days=floor($secs/86400); $secs=$secs%86400; $r=$days.' day'; if($days<>1){$r.='s'; }if($secs>0){$r.=', '; }} if($secs>=3600){$hours=floor($secs/3600); $secs=$secs%3600; $r.=$hours.' hour'; if($hours<>1){$r.='s'; }if($secs>0){$r.=', '; }} if($secs>=60){$minutes=floor($secs/60); $secs=$secs%60; $r.=$minutes.' minute'; if($minutes<>1){$r.='s'; }if($secs>0){$r.=', '; }} $r.=$secs.' second'; if($secs<>1){$r.='s'; } return $r; }
Grammar:
<? php $seconds = "56789"; $output = secsToStr($seconds); echo $output; ? >
20. Database connection
Connect to MySQL database
<? php $DBNAME = 'koonk'; $HOST = 'localhost'; $DBUSER = 'root'; $DBPASS = 'koonk'; $CONNECT = mysql_connect($HOST,$DBUSER,$DBPASS); if(! $CONNECT) { echo 'MySQL Error: '.mysql_error(); } $SELECT = mysql_select_db($DBNAME); if(! $SELECT) { echo 'MySQL Error: '.mysql_error(); }? >
21. List of contents
Use the following PHP snippet to list all files and folders in one directory
function list_files($dir) { if(is_dir($dir)) { if($handle = opendir($dir)) { while(($file = readdir($handle)) ! == false) { if($file ! = "." && $file ! = ".." && $file ! = "Thumbs.db"/*pesky windows, images.. */) { echo '<a target="_blank" href="'.$dir.$file.'">'.$file.'</a>'."\n"; } } closedir($handle); }}}
Grammar:
<? php list_files("images/"); //This will list all files of images folder ? >
22. Detect user language
Use the following PHP snippet to detect the language used by the user’s browser
function get_client_language($availableLanguages, $default='en'){ if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $langs=explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']); Foreach ($langs as $value){$choice=substr($value,0,2); if(in_array($choice, $availableLanguages)){ return $choice; } } } return $default; }
23. View the CSV file
function readCSV($csvFile){ $file_handle = fopen($csvFile, 'r'); while (! feof($file_handle) ) { $line_of_text[] = fgetcsv($file_handle, 1024); } fclose($file_handle); return $line_of_text; } Syntax: <? php $csvFile = "test.csv"; $csv = readCSV($csvFile); $a = csv[0][0]; // This will get value of Column 1 & Row 1 ? >
24. Create CSV files from PHP data
function generateCsv($data, $delimiter = ',', $enclosure = '"') { $handle = fopen('php://temp', 'r+'); foreach ($data as $line) { fputcsv($handle, $line, $delimiter, $enclosure); } rewind($handle); while (! feof($handle)) { $contents .= fread($handle, 8192); } fclose($handle); return $contents; } Syntax: <? php $data[0] = "apple"; $data[1] = "oranges"; generateCsv($data, $delimiter = ',', $enclosure = '"'); ? >
Parse XML data
$xml_string="<? The XML version = '1.0'? > <moleculedb> <molecule name='Benzine'> <symbol>ben</symbol> <code>A</code> </molecule> <molecule name='Water'> <symbol>h2o</symbol> <code>K</code> </molecule> </moleculedb>"; //load the xml string using simplexml function $xml = simplexml_load_string($xml_string); //loop through the each node of molecule foreach ($xml->molecule as $record) { //attribute are accessted by echo $record['name'], ' '; //node are accessted by -> operator echo $record->symbol, ' '; echo $record->code, ''; }
Parse JSON data
$json_string='{"id":1,"name":"rolf","country":"russia","office":["google","oracle"]} '; $obj=json_decode($json_string); //print the parsed data echo $obj->name; //displays rolf echo $obj->office[0]; //displays google
27. Obtain the current page URL
This PHP snippet can help you redirect the user to the page they were browsing
function current_url() { $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $validURL = str_replace("&", "&", $url); return validURL; }
Grammar:
<? php echo "Currently you are on: ".current_url(); ? >
28. Get the latest tweets from any Twitter account
function my_twitter($username) { $no_of_tweets = 1; $feed = "http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=" . $no_of_tweets; $xml = simplexml_load_file($feed); foreach($xml->children() as $child) { foreach ($child as $value) { if($value->getName() == "link") $link = $value['href']; if($value->getName() == "content") { $content = $value . ""; echo '<p class="twit">'.$content.' <a class="twt" href="'.$link.'" title=""> </a></p>'; }}}} syntax: <? php $handle = "koonktech"; my_twitter($handle); ? >
29. Number of forwards
Use this PHP snippet to check how many retweets your page URL has
function tweetCount($url) { $content = file_get_contents("http://api.tweetmeme.com/url_info?url=".$url); $element = new SimpleXmlElement($content); $retweets = $element->story->url_count; if($retweets){ return $retweets; } else { return 0; }} syntax: <? php $url = "http://blog.koonk.com"; $count = tweetCount($url); return $count; ? >
Calculate the difference between the two dates
<? php $date1 = date( 'Y-m-d' ); $date2 = "2015-12-04"; $diff = abs(strtotime($date2) - strtotime($date1)); $years = floor($diff / (365*60*60*24)); $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24)); $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); printf("%d years, %d months, %d days\n", $years, $months, $days); -------------------------------------------------------- OR $date1 = new DateTime("2007-03-24"); $date2 = new DateTime("2009-06-26"); $interval = $date1->diff($date2); echo "difference " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days "; // shows the total amount of days (not divided into years, months and days like above) echo "difference " . $interval->days . " days "; -------------------------------------------------------- OR /** * Calculate differences between two dates with precise semantics. Based on PHPs DateTime::diff() * implementation by Derick Rethans. Ported to PHP by Emil H, 2011-05-02. No rights reserved. * * See here for original code: * http://svn.php.net/viewvc/php/php-src/trunk/ext/date/lib/tm2unixtime.c?revision=302890&view=markup * http://svn.php.net/viewvc/php/php-src/trunk/ext/date/lib/interval.c?revision=298973&view=markup */ function _date_range_limit($start, $end, $adj, $a, $b, $result) { if ($result[$a] < $start) { $result[$b] -= intval(($start - $result[$a] - 1) / $adj) + 1; $result[$a] += $adj * intval(($start - $result[$a] - 1) / $adj + 1); } if ($result[$a] >= $end) { $result[$b] += intval($result[$a] / $adj); $result[$a] -= $adj * intval($result[$a] / $adj); } return $result; } function _date_range_limit_days($base, $result) { $days_in_month_leap = array(31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); $days_in_month = array(31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); _date_range_limit(1, 13, 12, "m", "y", &$base); $year = $base["y"]; $month = $base["m"]; if (! $result["invert"]) { while ($result["d"] < 0) { $month--; if ($month < 1) { $month += 12; $year--; } $leapyear = $year % 400 == 0 || ($year % 100 ! = 0 && $year % 4 == 0); $days = $leapyear ? $days_in_month_leap[$month] : $days_in_month[$month]; $result["d"] += $days; $result["m"]--; } } else { while ($result["d"] < 0) { $leapyear = $year % 400 == 0 || ($year % 100 ! = 0 && $year % 4 == 0); $days = $leapyear ? $days_in_month_leap[$month] : $days_in_month[$month]; $result["d"] += $days; $result["m"]--; $month++; if ($month > 12) { $month -= 12; $year++; } } } return $result; } function _date_normalize($base, $result) { $result = _date_range_limit(0, 60, 60, "s", "i", $result); $result = _date_range_limit(0, 60, 60, "i", "h", $result); $result = _date_range_limit(0, 24, 24, "h", "d", $result); $result = _date_range_limit(0, 12, 12, "m", "y", $result); $result = _date_range_limit_days(&$base, &$result); $result = _date_range_limit(0, 12, 12, "m", "y", $result); return $result; } /** * Accepts two unix timestamps. */ function _date_diff($one, $two) { $invert = false; if ($one > $two) { list($one, $two) = array($two, $one); $invert = true; } $key = array("y", "m", "d", "h", "i", "s"); $a = array_combine($key, array_map("intval", explode(" ", date("Y m d H i s", $one)))); $b = array_combine($key, array_map("intval", explode(" ", date("Y m d H i s", $two)))); $result = array(); $result["y"] = $b["y"] - $a["y"]; $result["m"] = $b["m"] - $a["m"]; $result["d"] = $b["d"] - $a["d"]; $result["h"] = $b["h"] - $a["h"]; $result["i"] = $b["i"] - $a["i"]; $result["s"] = $b["s"] - $a["s"]; $result["invert"] = $invert ? 1:0; $result["days"] = intval(abs(($one - $two)/86400)); if ($invert) { _date_normalize(&$a, &$result); } else { _date_normalize(&$b, &$result); } return $result; } $date = "2014-12-04 19:37:22"; echo '<pre>'; print_r( _date_diff( strtotime($date), time() ) ); echo '</pre>'; ? >
31. Delete the folder
function Delete($path) { if (is_dir($path) === true) { $files = array_diff(scandir($path), array('.', '.. ')); foreach ($files as $file) { Delete(realpath($path) . '/' . $file); } return rmdir($path); } else if (is_file($path) === true) { return unlink($path); } return false; }
Grammar:
<? php $path = "images/"; Delete($path); // This will delete images folder along with its contents. ? >
32. Search and highlight keywords in strings
function highlighter_text($text, $words) { $split_words = explode( " " , $words ); foreach($split_words as $word) { $color = "#4285F4"; $text = preg_replace("|($word)|Ui" , "<span style=\"color:".$color."; \"><b>$1</b></span>" , $text ); } return $text; }
Grammar:
<? php $string = "I like chocolates and I like apples"; $words = "apple"; echo highlighter_text($string ,$words); ? >
33. Write files
<? $filename = 'blog.csv'; $fp = fopen($filename, 'w'); $output = " Hello "; $output .= " World! "; $output .= "\r\n"; fputs($fp, $output); fclose($fp); ? >
34. Download the image from the URL
function imagefromURL($image,$rename) { $ch = curl_init($image); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); $rawdata=curl_exec ($ch); curl_close ($ch); $fp = fopen("$rename",'w'); fwrite($fp, $rawdata); fclose($fp); }
Grammar:
<? php $url = "http://koonk.com/images/logo.png"; $rename = "koonk.png"; imagefromURL($url,$rename); ? >
35. Check whether the URL is valid
function isvalidURL($url) { $check = 0; if (filter_var($url, FILTER_VALIDATE_URL) ! == false) { $check = 1; } return $check; } Syntax: <? php $url = "http://koonk.com"; $check = checkvalidURL($url); echo $check; //if returns 1 then URL is valid. ? >
Generate a QR code
function qr_code($data, $type = "TXT", $size ='150', $ec='L', $margin='0') { $types = array("URL" =--> "http://", "TEL" => "TEL:", "TXT"=>"", "EMAIL" => "MAILTO:"); if(! in_array($type,array("URL", "TEL", "TXT", "EMAIL"))) { $type = "TXT"; } if (! preg_match('/^'.$types[$type].'/', $data)) { $data = str_replace("\\", "", $types[$type]).$data; } $ch = curl_init(); $data = urlencode($data); curl_setopt($ch, CURLOPT_URL, 'http://chart.apis.google.com/chart'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, 'chs='.$size.'x'.$size.'&cht=qr&chld='.$ec.'|'.$margin.'&chl='.$data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_TIMEOUT, 30); $response = curl_exec($ch); curl_close($ch); return $response; }
Grammar:
<? php header("Content-type: image/png"); echo qr_code("http://koonk.com", "URL"); ? >
Calculate the distance between two map coordinates
function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2) { $theta = $longitude1 - $longitude2; $miles = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta))); $miles = acos($miles); $miles = rad2deg($miles); $miles = $miles * 60 * 1.1515; $feet = $miles * 5280; $yards = $feet / 3; $kilometers = $miles * 1.609344; $meters = $kilometers * 1000; return compact('miles','feet','yards','kilometers','meters'); }
Grammar:
<? $point1 = array('lat' => 40.770623, 'long' => -73.964367); $point2 = array('lat' => 40.758224, 'long' => -73.917404); $distance = getDistanceBetweenPointsNew($point1['lat'], $point1['long'], $point2['lat'], $point2['long']); foreach ($distance as $unit => $value) { echo $unit.': '.number_format($value,4).''; }? >
38. Get all Tweets for a particular hashtag
function getTweets($hash_tag) { $url = 'http://search.twitter.com/search.atom?q='.urlencode($hash_tag) ; echo "<p>Connecting to <strong>$url</strong> ... </p>"; $ch = curl_init($url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE); $xml = curl_exec ($ch); curl_close ($ch); //If you want to see the response from Twitter, uncomment this next part out: //echo "<p>Response:</p>"; //echo "<pre>".htmlspecialchars($xml)."</pre>"; $affected = 0; $twelement = new SimpleXMLElement($xml); foreach ($twelement->entry as $entry) { $text = trim($entry->title); $author = trim($entry->author->name); $time = strtotime($entry->published); $id = $entry->id; echo "<p>Tweet from ".$author.": <strong>".$text."</strong> <em>Posted ".date('n/j/y g:i a',$time)."</em></p>"; } return true ; }
39. Add th, ST,nd, or RD as a numeric suffix
Friday the 13th function ordinal($cdnl){ $test_c = abs($cdnl) % 10; $ext = ((abs($cdnl) %100 < 21 && abs($cdnl) %100 > 4) ? 'th' : (($test_c < 4) ? ($test_c < 3) ? ($test_c < 2) ? ($test_c < 1) ? 'th' : 'st' : 'nd' : 'rd' : 'th')); return $cdnl.$ext; }
Grammar:
<? php $number = 10; echo ordinal($number); //output is 10th ? >
40. Limit the speed of file downloads
<? php // local file that should be send to the client $local_file = 'test-file.zip'; // filename that the user gets as default $download_file = 'your-download-name.zip'; // set the download rate limit (=> 20,5 KB /s) $download_rate = 20.5; if(file_exists($local_file) && is_file($local_file)) { // send headers header('Cache-control: private'); header('Content-Type: application/octet-stream'); header('Content-Length: '.filesize($local_file)); header('Content-Disposition: filename='.$download_file); // flush content flush(); // open file stream $file = fopen($local_file, "r"); while(! feof($file)) { // send the current file part to the browser print fread($file, round($download_rate * 1024)); // flush the content to the browser flush(); // sleep one second sleep(1); } // close file stream fclose($file); } else { die('Error: The file '.$local_file.' does not exist! '); }? >
41. Convert text to pictures
<? php header("Content-type: image/png"); $string = $_GET['text']; $im = imagecreatefrompng("images/button.png"); $color = imagecolorallocate($im, 255, 255, 255); $px = (imagesx ($im) - 7.5 * strlen ($string)) / 2; $py = 9; $fontSize = 1; imagestring($im, fontSize, $px, $py, $string, $color); imagepng($im); imagedestroy($im); ? >
42. Get the size of the remote file
function remote_filesize($url, $user = "", $pw = "") { ob_start(); $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); if(! empty($user) && ! empty($pw)) { $headers = array('Authorization: Basic ' . base64_encode("$user:$pw")); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } $ok = curl_exec($ch); curl_close($ch); $head = ob_get_contents(); ob_end_clean(); $regex = '/Content-Length:\s([0-9].+?) \s/'; $count = preg_match($regex, $head, $matches); return isset($matches[1]) ? $matches[1] : "unknown"; }
Grammar:
<? php $file = "http://koonk.com/images/logo.png"; $size = remote_filesize($url); echo $size; ? >
43. Convert PDF to image using ImageBrick
<? php $pdf_file = './pdf/demo.pdf'; $save_to = './jpg/demo.jpg'; //make sure that apache has permissions to write in this folder! (common problem) //execute ImageMagick command 'convert' and convert PDF to JPG with applied settings exec('convert "'.$pdf_file.'" -colorspace RGB -resize 800 "'.$save_to.'"', $output, $return_var); if($return_var == 0) { //if exec successfuly converted pdf to jpg print "Conversion OK"; } else print "Conversion failed.".$output; ? >
44. Use TinyURL to generate short urls
function get_tiny_url($url) { $ch = curl_init(); $timeout = 5; curl_setopt($ch,CURLOPT_URL,'http://tinyurl.com/api-create.php?url='.$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); $data = curl_exec($ch); curl_close($ch); return $data; }
Grammar:
<? php $url = "http://blog.koonk.com/2015/07/Hello-World"; $tinyurl = get_tiny_url($url); echo $tinyurl; ? >
45. YouTube download link generator
Let your users download Youtube videos using the following PHP snippet
function str_between($string, $start, $end) { $string = " ".$string; $ini = strpos($string,$start); if ($ini == 0) return ""; $ini += strlen($start); $len = strpos($string,$end,$ini) - $ini; return substr($string,$ini,$len); } function get_youtube_download_link(){ $youtube_link = $_GET['youtube']; $youtube_page = file_get_contents($youtube_link); $v_id = str_between($youtube_page, "&video_id=", "&"); $t_id = str_between($youtube_page, "&t=", "&"); $flv_link = "http://www.youtube.com/get_video?video_id=$v_id&t=$t_id"; $hq_flv_link = "http://www.youtube.com/get_video?video_id=$v_id&t=$t_id&fmt=6"; $mp4_link = "http://www.youtube.com/get_video?video_id=$v_id&t=$t_id&fmt=18"; $threegp_link = "http://www.youtube.com/get_video?video_id=$v_id&t=$t_id&fmt=17"; echo "\t\tDownload (right-click > save as):\n\t\t"; echo "<a href=\"$flv_link\">FLV</a>\n\t\t"; echo "<a href=\"$hq_flv_link\">HQ FLV (if available)</a>\n\t\t"; echo "<a href=\"$mp4_link\">MP4</a>\n\t\t"; echo "<a href=\"$threegp_link\">3GP</a>\n"; }
46. Facebook-style timestamps
Facebook (x mins age, y hours ago etc) function nicetime($date) { if(empty($date)) { return "No date provided"; } $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade"); $lengths = array (" 60 ", "60", "24", "7", "4.35", "12", "10"); $now = time(); $unix_date = strtotime($date); // check validity of date if(empty($unix_date)) { return "Bad date"; } // is it future date or past date if($now > $unix_date) { $difference = $now - $unix_date; $tense = "ago"; } else { $difference = $unix_date - $now; $tense = "from now"; } for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) { $difference /= $lengths[$j]; } $difference = round($difference); if($difference ! = 1) { $periods[$j].= "s"; } return "$difference $periods[$j] {$tense}"; }
Grammar:
<? php $date = "2015-07-05 03:45"; $result = nicetime($date); // 2 days ago ? >
Blacklist filtering
function is_spam($text, $file, $split = ':', $regex = false){ $handle = fopen($file, 'rb'); $contents = fread($handle, filesize($file)); fclose($handle); $lines = explode("n", $contents); $arr = array(); foreach($lines as $line){ list($word, $count) = explode($split, $line); if($regex) $arr[$word] = $count; else $arr[preg_quote($word)] = $count; } preg_match_all("~".implode('|', array_keys($arr))."~", $text, $matches); $temp = array(); foreach($matches[0] as $match){ if(! in_array($match, $temp)){ $temp[$match] = $temp[$match] + 1; if($temp[$match] >= $arr[$word]) return true; } } return false; } $file = 'spam.txt'; $str = 'This string has cat, dog word'; if(is_spam($str, $file)) echo 'this is spam'; else echo 'this is not spam';
Output:
ab:3 dog:3 cat:2 monkey:2
Random color generator
function randomColor() { $str = '#'; for($i = 0 ; $i < 6 ; $i++) { $randNum = rand(0 , 15); switch ($randNum) { case 10: $randNum = 'A'; break; case 11: $randNum = 'B'; break; case 12: $randNum = 'C'; break; case 13: $randNum = 'D'; break; case 14: $randNum = 'E'; break; case 15: $randNum = 'F'; break; } $str .= $randNum; } return $str; } $color = randomColor();
49. Download files from the Internet
set_time_limit(0); // Supports all file types // URL Here: $url = 'http://somsite.com/some_video.flv'; $pi = pathinfo($url); $ext = $pi['extension']; $name = $pi['filename']; // create a new cURL resource $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // grab URL and pass it to the browser $opt = curl_exec($ch); // close cURL resource, and free up system resources curl_close($ch); $saveFile = $name.'.'.$ext; if(preg_match("/[^0-9a-z._-]/i", $saveFile)) $saveFile = md5(microtime(true)).'.'.$ext; $handle = fopen($saveFile, 'wb'); fwrite($handle, $opt); fclose($handle);
50, Alexa/Google Page Rank
function page_rank($page, $type = 'alexa'){ switch($type){ case 'alexa': $url = 'http://alexa.com/siteinfo/'; $handle = fopen($url.$page, 'r'); break; case 'google': $url = 'http://google.com/search?client=navclient-auto&ch=6-1484155081&features=Rank&q=info:'; $handle = fopen($url.'http://'.$page, 'r'); break; } $content = stream_get_contents($handle); fclose($handle); $content = preg_replace("~(n|t|ss+)~",'', $content); switch($type){ case 'alexa': if(preg_match('~(. +?)~im',$content,$matches)){ return $matches[2]; }else{ return FALSE; } break; case 'google': $rank = explode(':',$content); if($rank[2] ! = '') return $rank[2]; else return FALSE; break; default: return FALSE; break; } } // Alexa Page Rank: echo 'Alexa Rank: '.page_rank('techug.com'); echo ' '; // Google Page Rank echo 'Google Rank: '.page_rank('techug.com', 'google');
51. Force file downloads
$filename = $_GET['file']; //Get the fileid from the URL // Query the file ID $query = sprintf("SELECT * FROM tableName WHERE id = '%s'",mysql_real_escape_string($filename)); $sql = mysql_query($query); if(mysql_num_rows($sql) > 0){ $row = mysql_fetch_array($sql); // Set some headers header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Disposition: attachment; filename=".basename($row['FileName']).";" ); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize($row['FileName'])); @readfile($row['FileName']); exit(0); }else{ header("Location: /"); exit; }
Display a Gravatar of the user via Email
$gravatar_link = 'http://www.gravatar.com/avatar/' . md5($comment_author_email) . '?s=32'; echo '';
Delete from cURL the number of RSS feeds
$ch = curl_init(); Curl_setopt ($ch, CURLOPT_URL, 'https://feedburner.google.com/api/awareness/1.0/GetFeedData?id=7qkrmib4r9rscbplq5qgadiiq4') ; curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2); $content = curl_exec($ch); $subscribers = get_match('/circulation="(.*)"/isU',$content); curl_close($ch);
54. Time difference calculation function
function ago($time) { $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade"); $lengths = array (" 60 ", "60", "24", "7", "4.35", "12", "10"); $now = time(); $difference = $now - $time; $tense = "ago"; for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) { $difference /= $lengths[$j]; } $difference = round($difference); if($difference ! = 1) { $periods[$j].= "s"; } return "$difference $periods[$j] 'ago' "; }
55, Crop the picture
$filename= "test.jpg"; list($w, $h, $type, $attr) = getimagesize($filename); $src_im = imagecreatefromjpeg($filename); $src_x = '0'; // begin x $src_y = '0'; // begin y $src_w = '100'; // width $src_h = '100'; // height $dst_x = '0'; // destination x $dst_y = '0'; // destination y $dst_im = imagecreatetruecolor($src_w, $src_h); $white = imagecolorallocate($dst_im, 255, 255, 255); imagefill($dst_im, 0, 0, $white); imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h); header("Content-type: image/png"); imagepng($dst_im); imagedestroy($dst_im);
56, check whether the website is down
Function Visit($url){$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) "; $ch=curl_init(); curl_setopt ($ch, CURLOPT_URL,$url ); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch,CURLOPT_VERBOSE,false); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch,CURLOPT_SSLVERSION,3); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE); $page=curl_exec($ch); //echo curl_error($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if($httpcode>=200 && $httpcode<300) return="" true; ="" else="" false; ="" }="" if="" (visit("http:="" www.google.com"))="" echo="" "website="" ok"."n"; ="" down"; <="" pre="">Translation: http://blog.koonk.com