21 practical codes of PHP

web front end six thousand four hundred and eight 13 years ago (2011-04-27)

1. PHP can read random strings

This code will create a readable string that is closer to the words in the dictionary. It is practical and has password verification function.

  function readable_random_string($length = 6){$conso=array("b","c","d","f","g","h","j","k","l","m","n","p","r","s","t","v","w","x","y","z");$vocal=array("a","e","i","o","u");$password="";srand ((double)microtime()*1000000);$max = $length/2;for($i=1; $i<=$max; $i++){$password.=$conso[rand(0,19)];$password.=$vocal[rand(0,4)];} return $password;}

2. PHP generates a random string

If you do not need a readable string, use this function instead to create a random string as the user's random password.

  function generate_rand($l){$c= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";srand((double)microtime()*1000000);for($i=0; $i<$l; $i++) {$rand.= $c[rand()%strlen($c)];}return $rand;}

3. PHP encoded email address

With this code, you can encode any e-mail address as an html character entity to prevent it from being collected by spam programs.

 function encode_email($email=' info@domain.com ', $linkText='Contact Us', $attrs ='class="emailencoder"' ){// remplazar aroba y puntos$email = str_replace('@', '&#64;', $email);$email = str_replace('.', '&#46;', $email);$email = str_split($email, 5);  $linkText = str_replace('@', '&#64;', $linkText);$linkText = str_replace('.', '&#46;', $linkText); $linkText = str_split($linkText, 5);   $part1 = '<a href="ma';$part2 = 'ilto&#58;';$part3 = '" '.  $attrs .'  >';$ part4 = '</a>';   $encoded = '<script type="text/javascript">';$ encoded .=  "document.write('$part1');";$ encoded .=  "document.write('$part2');"; foreach($email as $e){$encoded .= "document.write('$e');";}$encoded .=  "document.write('$part3');"; foreach($linkText as $l){$encoded .= "document.write('$l');";}$encoded .=  "document.write('$part4');";$ encoded .=  '</script>';   return $encoded;}

4. PHP verifies the email address

E-mail verification is probably the most commonly used web form verification in. This code can also choose to check the MX record in the DNS of the e-mail domain in addition to verifying the e-mail address, making the e-mail verification more powerful.

 function is_valid_email($email, $test_mx = false){if(eregi("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))if($test_mx){list($username, $domain) = split("@", $email);return getmxrr($domain, $mxrecords);}elsereturn true; elsereturn false;}

5. PHP lists directory contents

 function list_files($dir){if(is_dir($dir)){if($handle = opendir($dir)){while(($file = readdir($handle)) !== false){if($file != "." && $file != ".." && $file != "Thumbs.db"){echo '<a target="_blank" href="'.$dir.$file.'">'.$file.'</a><br>'."\n";}}closedir($handle);}}}

6. PHP Destroy Directory

Delete a directory, including its contents.

  function destroyDir($dir, $virtual = false){$ds = DIRECTORY_SEPARATOR;$dir = $virtual ? realpath($dir) : $dir;$dir = substr($dir, -1) == $ds ? substr($dir, 0, -1) : $dir;if (is_dir($dir) && $handle = opendir($dir)){while ($file = readdir($handle)){if ($file == '.' || $file == '..'){continue;} elseif (is_dir($dir.$ds.$file)){destroyDir($dir.$ds.$file);}else{unlink($dir.$ds.$file);}}closedir($handle); rmdir($dir); return true;} else{return false;}}

7. PHP parsing JSON data

Like most popular Web services provide data through open APIs, it always knows how to parse various transmission formats of API data, including JSON, XML, and so on.

 $json_string='{"id":1,"name":"foo","email":" foo@foobar.com ","interest":["wordpress","php"]} ';$obj=json_decode($json_string);echo $obj->name; //prints fooecho $obj->interest[1]; //prints php

8. PHP parses XML data

 //xml string$xml_string="<?xml version='1.0'?><users><user id='398'><name>Foo</name><email> foo@bar.com </name></user><user id='867'><name>Foobar</name><email> foobar@foo.com </name></user></users>";  //load the xml string using simplexml$xml = simplexml_load_string($xml_string);  //loop through the each node of userforeach ($xml->user as $user){//access attributeecho $user['id'], ' ';//subnodes are accessed by -> operatorecho $user->name, ' ';echo $user->email, '<br />';}

9. PHP Create Log Abbreviation

Create user-friendly log abbreviations.

 function create_slug($string){$slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);return $slug;}

10. PHP obtains the real IP address of the client

This function will get the real IP address of the user, even if he uses the proxy The server

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

11. PHP mandatory file download

Provide users with mandatory file download function.

  function force_download($file){if ((isset($file))&&(file_exists($file))) {header("Content-length: ".filesize($file));header('Content-Type: application/octet-stream');header('Content-Disposition: attachment; filename="' . $file . '"');readfile("$file");} else {echo "No file selected";}}

12. PHP creates tag cloud

 function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 ){$minimumCount = min( array_values( $data ) );$maximumCount = max( array_values( $data ) );$spread = $maximumCount - $minimumCount;$cloudHTML = '';$cloudTags = array();  $spread == 0 && $spread = 1;   foreach( $data as $tag => $count ){$size = $minFontSize + ( $count - $minimumCount )* ( $maxFontSize - $minFontSize ) / $spread;$cloudTags[] = '<a style="font-size: ' . floor( $size ) . 'px'. '" href="#" title="\'' . $tag .'\' returned a count of ' . $count . '" >'.  htmlspecialchars( stripslashes( $tag ) ) .  '</a>';}   return join( "\n", $cloudTags ) .  "\n";}  $arr = Array('Actionscript' => 35, 'Adobe' => 22, 'Array' => 44, 'Background' => 43,'Blur' => 18, 'Canvas' => 33, 'Class' => 15, 'Color Palette' => 11, 'Crop' => 42,'Delimiter' => 13, 'Depth' => 34, 'Design' => 8, 'Encode' => 12, 'Encryption' => 30,'Extract' => 28, 'Filters' => 42); echo getCloud($arr, 12, 36);

13. PHP searches for the similarity of two strings

PHP provides a rarely used similar_text function, but this function is very useful for comparing two strings and returning the percentage of similarity.

 similar_text($string1, $string2, $percent);//$ percent will have the percentage of similarity

14. PHP uses Gravatar general avatar in applications

As WordPress becomes more and more popular, Gravatar is also popular. Because Gravatar provides an easy-to-use API, it is also very convenient to incorporate it into applications.

  function show_gravatar($email, $size, $default, $rating){echo '<img src=" https://www.gravatar.com/avatar.php?gravatar_id= '.md5($email).'& default='.$ default.'& size='.$ size.'& rating='.$ rating.' " width="'.$ size.' px"height="'.$ size.' px" />';}

15. PHP truncates text at character breakpoints

The so-called word break is the place where a word can be broken when changing lines. This function truncates the string at hyphenation.

 // Original PHP code by Chirp Internet: www.chirp.com.au// Please acknowledge use of this code by including this header.function myTruncate($string, $limit, $break=".", $pad="...") {// return with no change if string is shorter than $limitif(strlen($string) <= $limit)return $string;   // is $break present between $limit and the end of the string? if(false !== ($breakpoint = strpos($string, $break, $limit))) {if($breakpoint < strlen($string) - 1) {$string = substr($string, 0, $breakpoint) . $pad;}}return $string;}  $short_string=myTruncate($long_string, 100, ' ');

16. Zip compression of PHP files

  function create_zip($files = array(),$destination = '',$overwrite = false) {//if the zip file already exists and overwrite is false, return falseif(file_exists($destination) && !$overwrite) { return false; }//vars$valid_files = array();// if files were passed in... if(is_array($files)) {//cycle through each fileforeach($files as $file) {//make sure the file existsif(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 filesforeach($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 existsreturn file_exists($destination);} else{return false;}} $files=array('file1.jpg', 'file2.jpg', 'file3.gif'); create_zip($files, 'myzipfile.zip', true);

17. PHP decompress Zip file

  function unzip_file($file, $destination){// create object$zip = new ZipArchive() ;// open archiveif ($zip->open($file) !== TRUE) {die (&rsquo;Could not open archive&rsquo;);}// extract contents to destination directory$zip->extractTo($destination);//  close archive$zip->close(); echo 'Archive extracted to directory';}

18. PHP presets http strings for URL addresses

Sometimes you need to accept the URL input in some forms, but users rarely add https fields. This code will add this field to the URL.

 if (!preg_match("/^(http|ftp):/", $_POST['url'])) {$_POST['url'] = 'https://'.$_POST['url'];}

19. PHP converts URL strings into hyperlinks

This function converts URL and E-mail address strings into clickable hyperlinks.

 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="https://\2">\2</a>', $text);$ text = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})','<a href="mailto:\1">\1</a>', $text);   return $text;}

20. PHP Resize Image

Creating image thumbnails takes a lot of time, and this code will help you understand the logic of thumbnails.

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

21. PHP detects ajax requests

Most JavaScript frameworks, such as jquery and Mootools, will send additional HTTP_X_REQUESTED_WITH header information when sending Ajax requests. The header is an Ajax request, so you can detect Ajax requests on the server side.

 if(!emptyempty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){//If AJAX Request Then}else{//something else}