常用函数
代码:<?php/************************************************************* Filename :function file 2.0 ** Address: New York ** Copyright (C) 2008-2010 **************************************************************/ // 防注入function inject($str) {if(!empty($str)){$pour=eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|<|>|\"|union|into|load_file|outfile', $str);if($pour){ exit("<script>alert(' $str is wrong !');history.back(1)</script>"); }else{ return $str; }}else{exit("<script>alert(' content is empty !');history.back(1)</script>");}}// 返回正整数function isint($str){if(!empty($str)){$pour=preg_match("/^**$/",$str);if($pour){ return $str; }else{ exit("<script>alert(' $str is wrong !');history.back(1)</script>"); }}else{exit("<script>alert(' Number is empty !');history.back(1)</script>");}}// 截取字段function all_substr($str, $start, $length){ $pa="/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|"; $pa.="\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/"; preg_match_all($pa, $str, $t_string); if(count($t_string) - $start > $length){ return join('', array_slice($t_string, $start, $length)) . "..."; }else{ return join('', array_slice($t_string, $start, $length)); } }// 检测用户名function user($str,$tips){if(empty($str)){exit("<script>alert('".$tips." can not be empty !');history.back(1);</script>");}else{$pour=preg_match("/^{3,15}$/i", $str);if($pour){ return inject($str); }else{ exit("<script>alert(' Username is made up of 3 - 15 characters !');history.back(1)</script>"); }}}// 检测是否为空function is_empty($str,$tips){ if(empty($str)){ exit("<script>alert('".$tips." can not be empty !');history.back(1);</script>");}else{ return inject($str); } }// 验证邮件地址function isEmail($str){$pour=preg_match("/^+@(+\.)+{2,4}$/i",$str);if($pour){ return $str; }else{exit("<script>alert(' $str is wrong !');history.back(1)</script>"); }}//验证是否为数组function is_arr($arr){ if(is_array($arr)){ return $arr; }else{ exit("<script>alert(' No datas !');history.back(1)</script>"); }}// 返回图片function html_img($path,$add = '',$alt = '',$title = ''){if(!empty($alt)){ $alt = "alt=\"".$alt."\""; } if(!empty($title)){ $title = "title=\"".$title."\""; }return "<img src=\"".$path."\" ".$add." ".$alt." ".$title." />";}// 返回链接function html_link($path,$title,$add = '',$target = ''){if(!empty($target)){ $target = "target=\"".$target."\""; }return "<a href=\"".$path."\" ".$target." ".$add.">".$title."</a>";}// 返回地址function gotoUrl($url='',$tips=''){if(empty($url) && empty($tips)){exit("<script type=\"text/javascript\">history.back(1);</script>");}elseif(!empty($url) && empty($tips)){exit("<script type=\"text/javascript\">location='".$url."'</script>");}elseif(empty($url) && !empty($tips)){exit("<script type=\"text/javascript\">alert('".$tips."');history.back(1);</script>");}else{exit("<script type=\"text/javascript\">alert('".$tips."');location='".$url."'</script>");}}// 验证url地址function url($str){ return (preg_match("/^http:\/\/+\.+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/",$str))?true:"URL format error!";}// 获取html中图片的地址function getImg($str){$str = stripslashes($str);$pattern = "/<img[^>]*src\=\"(([^>]*)(jpg|gif|png|bmp|jpeg))\"/"; //获取所有图片标签的全部信息preg_match_all($pattern, $str, $matches); return $matches; //$matches中就是所想匹配的结果,结果为数组}// 非法字符function isvalidname($username){$badkey = array("\\", '|', ' ', ' ', "'", '"', '/', '*', ',', '~', ';', '<','>', '$', "\r", "\t", "\n",'#','*','?',':','@','!','(',')','~','`','^','&');foreach ($badkey as $value){if (strpos($username, $value) !== false){return false;exit;}}return true;}// 去除html标签function isbare($str){return strip_tags($str);}// 在指定的预定义字符前添加反斜杠function addline($str){return addslashes($str);}// 去除预定义字符前添加反斜杠function delline($str){return stripslashes($str);}// 截取字段function firstPath($str,$end){return substr( $str,0,strpos( $str, $end)) ;}function lastPath($str,$end){return substr( $str,strrpos($str, $end)) ;}// 返回路径中的文件名部分function urlName($path,$suffix){if(empty($suffix)){return basename($path); //显示带有文件扩展名的文件名}else{return basename($path,$suffix); //显示不带有文件扩展名的文件名}}// GD库是否开启function gd(){if(extension_loaded('gd')) { if(function_exists('gd_info')) { echo '<pre>'; print_r(gd_info()); echo '</pre>'; exit; }else{ exit('OOOOPS, this GD Version is so low !');}}else exit(' We can not find GD !');}// 返回图片信息function myimg($img,$btn = 0){$getinfor = @getimagesize($img);if($btn == 1){return $arr =array($getinfor,$getinfor);}elseif($btn == 2){switch($getinfor){case 1: return 'gif'; break;case 2: return 'jpg'; break;case 3: return 'png'; break;case 6: return 'bmp'; break;}}else{echo '<pre>'; print_r($getinfor); echo '</pre>'; exit;}}// 打印函数function printer($arr,$add = 1){echo '<pre>'; if($add !=1 ){ var_dump($arr); }else{ print_r($arr); } echo '</pre>'; exit;}//返回结果为1只有数字,2只有字符,3两者都有function checkVS($str){$a=0; $b=0;for($i=0;$i<strlen($str);$i++){$v=ord(substr($str,$i,1));if($v>=48 and $v<=57){$a=1;}else{$b=2;}}return $a+$b; }// 返回数组中最大值function maxi($arr){sort($arr);return $arr;}// 删除文件夹目录(允许有多级目录) /******@dir - Directory to destroy*@virtual- 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 不要加 '/'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 delFile($path){if(is_file($path)){ @unlink($path);}}// 移动(目录要存在)或者修改名字function moveFile($oldName,$newName){@rename($oldName,$newName);}// 创建相应的文件夹function createdir($dir=''){if (!is_dir($dir)){$temp = explode('/',$dir);$cur_dir = '';for($i=0;$i<count($temp);$i++){$cur_dir .= $temp[$i].'/';if (!is_dir($cur_dir)){@mkdir($cur_dir,0777);}}}}//IP 地址function getip(){ if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")){$ip = getenv("HTTP_CLIENT_IP"); }else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")){$ip = getenv("HTTP_X_FORWARDED_FOR"); }else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")){$ip = getenv("REMOTE_ADDR"); }else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")){$ip = $_SERVER['REMOTE_ADDR']; }else{$ip = "unknown"; }return($ip);}// 跳转function flyTo($title='',$message='',$url=''){$html="<html><head>";if(!empty($url)){$html .="<meta http-equiv='refresh' content=\"3;url='".$url."'\">";//$html .="<link href='../templates/style.css' type=text/css rel=stylesheet><style type='text/css'>";$html .="<style type='text/css'>";$html .="*{font-family:Arial, Helvetica, sans-serif; font-size:13px;} table{border-collapse:collapse;} .m_title{background:#DADAFF;} .line_1{background:#FFFAF6;}";$html .="</style></head><body><br><br>";$html .="<table cellspacing='0' cellpadding='0' border='1' width='450' align='center'>";$html .="<tr><td bgcolor='#ffffff'>";$html .="<table border='1' cellspacing='1' cellpadding='4' width='100%'>";$html .="<tr class='m_title'>";$html .="<td>".$title."</td></tr>";$html .="<tr class='line_1'><td align='center' height='60'>";$html .="<br>".$message."<br><br>";$html .="The system will return in 3 seconds. <br /> If your browser does not automatically return, <br />please click [<a href=".$url." target=_self> Here </a>] Enter .";//$html .="<br><br> [<a href='#' onclick='history.go(-1)'> Back </a>]";$html .="<br><br></td></tr></table></td></tr></table>";$html .="</body></html>";echo $html;}exit;}/*include("function.php");$total=mysql_num_rows($result);pageft($total,10);$result=mysql_query("select * from wp_shoutlugmap order by id desc limit $firstcount,$displaypg");while($row=mysql_fetch_array($result)){// display something}echo $pagenav;*/function pageft($totle,$displaypg=20,$url=''){global $page,$firstcount,$pagenav,$_SERVER;$GLOBALS["displaypg"]=$displaypg;if(!$page){$page=1;}if(!$url){$url=$_SERVER["REQUEST_URI"];}$parse_url=parse_url($url);$url_query=$parse_url["query"]; if($url_query){$url_query=ereg_replace("(^|&)page=$page","",$url_query);$url=str_replace($parse_url["query"],$url_query,$url);if($url_query){$url.="&page";}else{$url.="page";}}else {$url.="?page";}$lastpg=ceil($totle/$displaypg);$page=min($lastpg,$page);$prepg=$page-1;$nextpg=($page==$lastpg ? 0 : $page+1); $firstcount=($page-1)*$displaypg;$pagenav="显示第 <B>".($totle?($firstcount+1):0)."</B>-<B>".min($firstcount+$displaypg,$totle)."</B> 条记录,共 $totle 条记录<BR>";if($lastpg<=1){return false;}$pagenav.=" <a href='$url=1'>首页</a> ";if($prepg){$pagenav.=" <a href='$url=$prepg'>前页</a> ";}else{$pagenav.=" 前页 ";}if($nextpg){$pagenav.=" <a href='$url=$nextpg'>后页</a> ";}else{$pagenav.=" 后页 ";}$pagenav.=" <a href='$url=$lastpg'>尾页</a> ";$pagenav.=" 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n";for($i=1;$i<=$lastpg;$i++){if($i==$page){$pagenav.="<option value='$i' selected>$i</option>\n";}else{$pagenav.="<option value='$i'>$i</option>\n";}}$pagenav.="</select> 页,共 $lastpg 页";}// 产生随机字符串函数function random($length) {$hash = '';$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';$max = strlen($chars) - 1;mt_srand((double)microtime() * 1000000);for($i = 0; $i < $length; $i++) {$hash .= $chars;}return $hash;}// 获得文件后缀function extend($file_name){$extend = pathinfo($file_name);$extend = strtolower($extend["extension"]);return $extend;}// 该函数将 URL 和 E-mail 地址字符串转换为可点击的超级链接。function makeLinks($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('(+@(+.)+{2,3})','<a href="mailto:\1">\1</a>', $text);return $text;}// 随着 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 '<img src="http://www.gravatar.com/avatar.php?gravatar_id='.md5($email).'&default='.$default.'&size='.$size.'&rating='.$rating.'" width="'.$size.'px"height="'.$size.'px" />';}// 创建标签云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";}/****************************** 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);*/// 为用户提供强制性的文件下载功能。/*********************@file - path to file* eg: force_download('10.png');*/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";}}// 建用户友好的日志缩略名。function create_slug($string){$slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);return $slug;}/***************************************************************************************** $dir_name = 'message/templates';//返回哪个目录的总文件数 ** $file_count = get_file_count($dir_name); ** echo $dir_name.'目录下文件总数:<font color="red">'.count($file_count).'</font><br />';** print_r($file_count); ******************************************************************************************/function get_file_count($dir_name){ //得到目录下的文件函数global $files; //申明全局变量有于统计$od = opendir($dir_name); //打开目录,返回连接号while ($name = readdir($od)){ //读取目录$file_path = $dir_name.'/'.$name; //目录 用于使用 is_file()if (is_file($file_path)){ //是一个文件$files[] = $file_path; //添加,用于最后的统计}elseif (($name !='.') && ($name !='..')){ //输出$name看看就知道get_file_count($file_path); //递归的调用}}return $files; //返回目录下的总文件数}//// Function: 获取远程图片并把它保存到本地//// 确定您有把文件写入本地服务器的权限//// 变量说明:// $url 是远程图片的完整URL地址,不能为空。// $filename 是可选变量: 如果为空,本地文件名将基于时间和日期// 自动生成.function GrabImage($url,$filename='') {if($url == ''){return false;}if($filename == '') {$ext = strrchr($url,'.');if($ext != '.gif' && $ext != '.jpg'){return false;}$filename = date('dMYHis').$ext;}ob_start();readfile($url);$img = ob_get_contents();ob_end_clean();$size = strlen($img);$fp2 = @fopen($filename, 'a');fwrite($fp2,$img);fclose($fp2);return $filename;}/*$img = GrabImage('http://dl.iteye.com/upload/picture/pic/55053/2d4fa08f-4e39-3ca2-8087-fc2fd1c836ec.jpg','');if($img){echo '<pre><img src="'.$img.'"></pre>';}else{echo 'false';}*//* 计算复活节 echo easter(); 默认为今年 */function easter($year = ''){return empty($year) ? date("m-d-Y", easter_date()) : date("m-d-Y", easter_date($year)); }/***********************************************求相对路径$path_a = "/mytest/jquery.js";$path_b = "/willdo/church/index.php";echo compara_path($path_a, $path_b);************************************************/function compara_path($path_a, $path_b) {//切割路径.$array_a = explode('/', $path_a);$array_b = explode('/', $path_b);//从数组中删除最后的文件,剩下的全为文件夹名称.$file_a = array_pop($array_a);$file_b = array_pop($array_b);//子目录个数.$a_len = count($array_a);$b_len = count($array_b);//循环求出第几个目录不同.for ( $i = 0; $i < $a_len; $i++ ) {if ($array_a[$i] != $array_b[$i] ) {break;}}//求出相对路径.$com_path = '';for ( $j = 0; $j < $a_len - $i; $j++ ) {$com_path .= '../';}for ( $i; $i< $b_len; $i++ ) {$com_path .= $array_b[$i] . '/';}$com_path .= $file_b;return $com_path;}?>
页:
[1]