设为首页 收藏本站
查看: 380|回复: 0

[经验分享] 21 Really Useful & Handy PHP Code Snippets

[复制链接]

尚未签到

发表于 2017-4-4 07:09:46 | 显示全部楼层 |阅读模式
  PHP is the most widely used web based programming language that powers millions of websites including some of the most popular ones like Facebook. Here are 21 really useful and handy PHP code snippets that every type of PHP developer will find useful.

1.Human Readable Random String
This code will create a human readable string that will look more close to dictionary words, useful for captchas.
/**************
*@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; 

/**************
*@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 don’t need human readable string, then use this function instead, which will create a random string you can use for user id’s etc.
/*************
*@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; 

/*************
*@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
With this snippet, you can encode any email address into HTML entities so that spam bots do not find it.
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; 

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.Validate email Address
E-mail validation is perhaps the most used validation in web forms, this code will validate email address and also optionally check the MX records of the domain provided in email address to make email validation more robust.
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; 

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

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. Destroy Directory
Delete a directory including its contents.
/*****
*@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; 
    } 

/*****
*@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
With most of the popular web services like Twitter providing their data through APIs, it is always helpful to know how to parse API data which is sent in various formats including JSON, XML etc.
$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 
$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
//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 user 
foreach ($xml->user as $user) 

   //access attribute 
   echo $user['id'], '  '; 
   //subnodes are accessed by -> operator 
   echo $user->name, '  '; 
   echo $user->email, '<br />'; 


//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 user
foreach ($xml->user as $user)
{
   //access attribute
   echo $user['id'], '  ';
   //subnodes are accessed by -> operator
   echo $user->name, '  ';
   echo $user->email, '<br />';
}

9.Create Post Slugs
Create user friendly post slugs from title string to use within URLs.
function create_slug($string){ 
    $slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string); 
    return $slug; 

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

10.Get Real IP Address of Client
This function will fetch the real IP address of the user even if he is behind a proxy 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; 

function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))
    {
        $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_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.Force file Download
Provide files to the user by forcing them to download.
/********************
*@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"; 
    } 

/********************
*@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.Creating a Tag Cloud
function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 ) 

    $minimumCount = min($data); 
    $maximumCount = max($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' 
        . '" class="tag_cloud" href="#" title="\'' . $tag  . 
        '\' returned a count of ' . $count . '">' 
        . htmlspecialchars( stripslashes( $tag ) ) . '</a>'; 
    } 
 
    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); 

function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 )
{
    $minimumCount = min($data);
    $maximumCount = max($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'
        . '" class="tag_cloud" href="#" title="\'' . $tag  .
        '\' returned a count of ' . $count . '">'
        . htmlspecialchars( stripslashes( $tag ) ) . '</a>';
    }

    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.Find Similarity Between Two Strings
PHP includes a function similar_text very rarely used but quite useful that compares two strings and returns the percentage of similarity between two.
similar_text($string1, $string2, $percent); 
//$percent will have the percentage of similarity 

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

14. Use Gravatars in Your Application
With ever increasing popularity of WordPress, Gravatars have become quite popular. It is very easy to integrate them into your application as they provide a very easy to use 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 '<img src="http://www.gravatar.com/avatar.php?gravatar_id='.md5($email). 
        '&default='.$default.'&size='.$size.'&rating='.$rating.'" width="'.$size.'px"
        height="'.$size.'px" />'; 

/******************
*@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 '<img src="http://www.gravatar.com/avatar.php?gravatar_id='.md5($email).
        '&default='.$default.'&size='.$size.'&rating='.$rating.'" width="'.$size.'px"
        height="'.$size.'px" />';
}

15. Truncate Text at Word Break
This function will truncate strings only at word breaks which can be used to show a teaser for complete article without breaking words.
// 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, ' '); 

// 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 Files on the Fly
/* 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); 

/* 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.Unzip Zip File
/**********************
*@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'; 

/**********************
*@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. Prepend http to a URL
Some times you need to accept some url as input but users seldom add http:// to it, this code will add http:// to the URL if it’s not there.

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

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

19.Convert URLs within String into hyperlinks
This function converts URLs and e-mail addresses within a string 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="http://\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; 


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 = 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.Resize Images on the fly
Creating thumbnails of the images is required many a times, this code will be useful to know about the logic of thumbnail generation.
/**********************
*@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; 

/**********************
*@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.Detect AJAX Request
Most of the JavaScript frameworks like jQuery, mootools send and additional HTTP_X_REQUESTED_WITH header when they make an AJAX request, so that you can detect AJAX request on server side.(source)

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

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

If you would like to recommend a snippet to include in this list to make this list a more useful resource, tell us about it in comments below.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-359802-1-1.html 上篇帖子: 5 个 PHP 编程的好习惯 下篇帖子: php下的RSA算法实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表