Php useful code snippets that must be added to favorites,

Source: Internet
Author: User
Tags fread

Php useful code snippets that must be added to favorites,

It's always good to have a magic tool when writing code! The following is a collection of 40 + PHP code snippets to help you develop PHP projects. I have already shared 23 practical php code snippets that must be added to my favorites.
These PHP snippets are also very helpful for beginners of PHP and are very easy to learn. Let's start learning ~

24. Create a CSV file 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 = '"');?>

25. parse XML data

$xml_string="<?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 moleculeforeach ($xml->molecule as $record){  //attribute are accessted by  echo $record['name'], ' ';  //node are accessted by -> operator  echo $record->symbol, ' ';  echo $record->code, '';}

26. parse JSON data

$json_string='{"id":1,"name":"rolf","country":"russia","office":["google","oracle"]} ';$obj=json_decode($json_string);//print the parsed dataecho $obj->name; //displays rolfecho $obj->office[0]; //displays google

27. Get the URL of the current page
This PHP fragment can help you directly jump to the previous page after logging on to the user

function current_url(){$url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];$validURL = str_replace("&", "&", $url);return validURL;}

Syntax:

<?phpecho "Currently you are on: ".current_url();?>

28. Get the latest Tweet 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
Using this PHP fragment, you can check the number of forwarded URLs on your page.

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;?>

30. Calculate the difference between 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 folder content

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;}

Syntax:

<?php$path = "images/";Delete($path); // This will delete images folder along with its contents.?>

32. Search for 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;}

Syntax:

<?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 images based on URLs

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);}

Syntax:

<?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.?>

36. 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;}

Syntax:

<?phpheader("Content-type: image/png");echo qr_code("http://koonk.com", "URL");?>

37. 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');}

Syntax:

<?php$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 specific topic tag

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 the digit suffix.

Friday the 13thfunction 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;}

Syntax:

<?php$number = 10;echo ordinal($number); //output is 10th?>

40. Restrict File Download speed

<?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 into images

<?phpheader("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. Obtain the Remote File Size

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";}

Syntax

<?php$file = "http://koonk.com/images/logo.png";$size = remote_filesize($url);echo $size;?>

43. Use imagebrick to Convert pdf files to images

<?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 settingsexec('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; }

Syntax:

<?php$url = "http://blog.koonk.com/2015/07/Hello-World";$tinyurl = get_tiny_url($url);echo $tinyurl;?>

45. youtube download link Builder
You can use the following PHP snippets to download Youtube videos for your users.

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}";}

Syntax:

<?php$date = "2015-07-05 03:45";$result = nicetime($date); // 2 days ago?>

The above is all the content of this article, hoping to help you learn.

Articles you may be interested in:
  • Seven super practical PHP code snippets
  • 10 practical PHP code snippets
  • Handling code snippets with common strings in php
  • Super practical seven PHP code snippets
  • PHP security detection code snippets (SHARE)
  • 19 ultra-practical PHP code snippets
  • Share nine classic PHP code snippets
  • 9 practical PHP code snippets
  • 10 super useful PHP code snippets worth collecting
  • Six ultra-practical PHP code snippets

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.