/****************** *@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\" />\'; }
所谓断字 (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, \' \');
/* 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);
/********************** *@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\'; }
有时需要接受一些表单中的网址输入,但用户很少添加 http:// 字段,此代码将为网址添加该字段。
if (!preg_match(\"/^(http|ftp):/\", $_POST[\'url\'])) { $_POST[\'url\'] = \'http://\'.$_POST[\'url\']; }
该函数将 URL 和 E-mail 地址字符串转换为可点击的超级链接。
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; }
创建图像缩略图需要许多时间,此代码将有助于了解缩略图的逻辑。
/********************** *@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; }