Home > Backend Development > PHP Tutorial > PHP practical code collection_PHP tutorial

PHP practical code collection_PHP tutorial

WBOY
Release: 2016-07-21 15:41:26
Original
867 people have browsed it

1. Readable random string

This code will create a readable string that is closer to the word in the dictionary, practical and has password verification capabilities.

Copy code The code is as follows:

/**************
*@length - length of random string (must be a multiple of 2)
**************/
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. Generate 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, etc.
Copy code The code is as follows:

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

3. Encode email address

Using this code, any email address can be encoded as an HTML character entity to prevent collection by spam programs.
Copy code The code is as follows:

function encode_email($email='info@domain.com', $linkText=' Contact Us', $attrs ='class="emailencoder"' )
{
// remplazar aroba y puntos
$email = str_replace('@', '@', $email);
$email = str_replace('.', '.', $email);
$email = str_split($email, 5);

$linkText = str_replace('@', '@' , $linkText);
$linkText = str_replace('.', '.', $linkText);
$linkText = str_split($linkText, 5);

$part1 = '< ;a href="ma';
$part2 = 'ilto:';
$part3 = '" '. $attrs .' >';
$part4 = '' ;

$encoded = '';

return $encoded;
}

4. Verify email address

Email verification is perhaps the most commonly used web form verification, this code in addition to verifying email address Email address, you can also choose to check the MX record in the DNS of the email domain to make the email verification function more powerful.
Copy code The code is as follows:

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);
}
else
return true;
else
return false;
}

5. List directory contents
Copy code The code is as follows:

function list_files($dir )
{
if(is_dir($dir))
{
if($handle = opendir($dir))
{
while(($file = readdir($ handle)) !== false)
{
if($file != "." && $file != ".." && $file != "Thumbs.db")
{
echo ''.$file.'
'."n";
}
}
closedir($handle);
}
}
}

6. Destroy directory

Delete a directory, including its content.
Copy code The code is as follows:

/*****
*@dir - Directory to destroy
*@virtual[optional]- whether a virtual directory
*/
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 . Parse JSON data

Like most popular web services such as Twitter that provide data through open APIs, it always knows how to parse various delivery formats of API data, including JSON, XML, etc.
Copy code The code is as follows:

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

8. Parse XML data
Copy the code The code is as follows:

//xml string
$xml_string="


Foo
foo@bar.com


Foobar
foobar@foo.com

";

//load the xml string using simplexml
$xml = simplexml_load_string($xml_string);

//loop through the each node of user
foreach ($xml->user as $user)
{
//access attribute
echo $user['id'], ' ';
//subnodes are accessed by - > operator
echo $user->name, ' ';
echo $user->email, '
';
}

9. Create log abbreviation

Create user-friendly log abbreviation.
Copy code The code is as follows:

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

10. Get the real IP address of the client

This function will get the real IP address of the user, even if he uses a proxy server.
Copy code The code is as follows:

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. Mandatory file download

provides users with mandatory file download function.
Copy code The code is as follows:

/********************
*@file - path to file
*/
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. Create tag cloud
Copy code The code is as follows:

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[] = ''
. htmlspecialchars( stripslashes( $tag ) ) . '
';
}

return join( "n", $cloudTags ) . "n";
}
/**************************
**** Sample usage ***/
$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 提供了一个极少使用的 similar_text 函数,但此函数非常有用,用于比较两个字符串并返回相似程度的百分比。
复制代码 代码如下:

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

14. 在应用程序中使用 Gravatar 通用头像

随着 WordPress 越来越普及,Gravatar 也随之流行。由于 Gravatar 提供了易于使用的 API,将其纳入应用程序也变得十分方便。
复制代码 代码如下:

/******************
*@email - Email address to show gravatar for
*@size - size of gravatar
*@default - URL of default gravatar to use
*@rating - rating of Gravatar(G, PG, R, X)
*/
function show_gravatar($email, $size, $default, $rating)
{
echo 'height="'.$size.'px" />';
}

15. 在字符断点处截断文字

所谓断字 (word break),即一个单词可在转行时断开的地方。这一函数将在断字处截断字符串。
复制代码 代码如下:

// 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 $limit
if(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;
}
/***** Example ****/
$short_string=myTruncate($long_string, 100, ' ');

16. 文件 Zip 压缩
复制代码 代码如下:

/* creates a compressed zip file */
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;
}
}
/***** Example Usage ***/
$files=array('file1.jpg', 'file2.jpg', 'file3.gif');
create_zip($files, 'myzipfile.zip', true);

17. 解压缩 Zip 文件
复制代码 代码如下:

/**********************
*@file - path to zip file
*@destination - destination directory for unzipped files
*/
function unzip_file($file, $destination){
// create object
$zip = new ZipArchive() ;
// open archive
if ($zip->open($file) !== TRUE) {
die ('Could not open archive');
}
// extract contents to destination directory
$zip->extractTo($destination);
// close archive
$zip->close();
echo 'Archive extracted to directory';
}

18. 为 URL 地址预设 http 字符串

有时需要接受一些表单中的网址输入,但用户很少添加 http:// 字段,此代码将为网址添加该字段。
复制代码 代码如下:

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

19. 将网址字符串转换成超级链接

该函数将 URL 和 E-mail 地址字符串转换为可点击的超级链接。
复制代码 代码如下:

function makeClickableLinks($text) {
$text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)',
'1', $text);
$text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)',
'12', $text);
$text = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})',
'1', $text);

return $text;
}

20. 调整图像尺寸

创建图像缩略图需要许多时间,此代码将有助于了解缩略图的逻辑。
复制代码 代码如下:

/**********************
*@filename - path to the image
*@tmpname - temporary path to thumbnail
*@xmax - max width
*@ymax - max height
*/
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. Detecting Ajax requests

Most JavaScript frameworks such as jQuery, Mootools, etc., when making Ajax requests, will send additional HTTP_X_REQUESTED_WITH header information when they are an ajax request, so you can Ajax request detected on the server side.
Copy code The code is as follows:

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

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/321197.htmlTechArticle1. Readable random string This code will create a readable string, making it closer to the dictionary of words, practical and with password verification function. Copy the code The code is as follows: /****...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template