<?php /***************************************************************** -- 函数名:set_size -- 作 用:得到文件的大小 -- 参 数:$filename 文件名 -- 返回值:字符串 -- 实 例:echo set_size("ll0617.rar"); *******************************************************************/ function set_size($filename){ if(is_file($filename)){ $size=filesize($filename); settype($size,"string"); for($aaa=strlen($size)-1;$aaa >= 0;$aaa--){ $dx=$dx.$size{$aaa}; } $size= $dx; for($i=0;$i<=floor((strlen($size)-1)/3);$i++){ $i==0?$begin=0:$begin=$i*3; //"b=$begin"; $end=$begin+2; for($begin;$begin<=$end;$begin++){ if($i==floor((strlen($size)-1)/3)){$res=$res.$size{$begin};} else{$begin!=$end?$res=$res.$size{$begin}:$res=$res.$size{$begin}.",";} } } unset($dx); settype($res,"string"); for($aaa=strlen($res)-1;$aaa >= 0;$aaa--){ $dx=$dx.$res{$aaa}; } return $dx; // unset($dx); }else{ return false; } } /***************************************************************** -- 函数名:w_or_r -- 作 用:文件读写权限 -- 参 数:$type,$filename -- 返回值:布尔 -- 实 例:echo w_or_r("r","ll0617.rar"); *******************************************************************/ function w_or_r($type,$filename){ if(file_exists($filename)){ if($type=="w"){ if(is_readable($filename)){ return "可读"; }else{ return "不可读"; } }elseif($type=="r"){ if(is_writable($filename)){ $path="/txt|asp|php|ini|html|htm|temp/i"; $path_parts = pathinfo($filename); $string=$path_parts["extension"]; if(preg_match_all("$path", "$string",$re)){ return "<A href="/" mce_href="/""#/" οnclick=/"javascript:Wopen=open('read.php?url=$path_parts[basename]','','width=600,height=600');/">编辑</a>"; }else{ return "可写"; } }else{ return "不可写"; } }else{ return false; } } } /***************************************************************** -- 函数名:getPageContent和replaceHtmlAndJs(必须) -- 作 用:php获取网页标题和内容函数(不包含html标签),可用作类似chinaz的Meta信息检测 -- 参 数:$url 所要得到的网址 -- 返回值:数组 -- 实 例:$a = getPageContent("http://www.baidu.com"); print_r($a); *******************************************************************/ function getPageContent($url) { $pageinfo = array(); $pageinfo[content_type] = ''; $pageinfo[charset] = ''; $pageinfo[title] = ''; $pageinfo[description] = ''; $pageinfo[keywords] = ''; $pageinfo[body] = ''; $pageinfo['httpcode'] = 200; $pageinfo['all'] = ''; $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); curl_setopt($ch, CURLOPT_TIMEOUT, 8); curl_setopt($ch, CURLOPT_FILETIME, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_URL,$url); $curl_start = microtime(true); $store = curl_exec ($ch); $curl_time = microtime(true) - $curl_start; if( curl_error($ch) ) { $pageinfo['httpcode'] = 505; //gate way error echo 'Curl error: ' . curl_error($ch) ."/n"; return $pageinfo; } //print_r(curl_getinfo($ch)); $pageinfo['httpcode'] = curl_getinfo($ch,CURLINFO_HTTP_CODE); //echo curl_getinfo($ch,CURLINFO_CONTENT_TYPE)."/n"; $pageinfo[content_type] = curl_getinfo($ch,CURLINFO_CONTENT_TYPE); if(intval($pageinfo['httpcode']) <> 200 or !preg_match('@text/html@',curl_getinfo($ch,CURLINFO_CONTENT_TYPE) ) ) { //print_r(curl_getinfo($ch) ); //exit; return $pageinfo; } preg_match('/charset=([^/s/n/r]+)/i',curl_getinfo($ch,CURLINFO_CONTENT_TYPE),$matches); //从header 里取charset if( trim($matches[1]) ) { $pageinfo[charset] = trim($matches[1]); } //echo $pageinfo[charset]; //exit; curl_close ($ch); //echo $store; //remove javascript $store = preg_replace("/<mce:script.*><!-- (.*)<//script>/smUi",'',$store); //remove link $store = preg_replace("/<link/s+[^>]+>/smUi",'',$store); //remove <!-- --> $store = preg_replace("/<!--.*-->/smUi",'',$store); //remove <style </style> $store = preg_replace("/<style.*>(.*)<//style>/smUi",'',$store); //remove 中文空格 $store = preg_replace("/ /",'',$store); //remove 标点符号 //$store = preg_replace("/[/~`!@#$%^&*()_/-+={}|/[/]//;':"/</>/?/,/.//]/",'',$store); //preg_match("/<head.*>(.*)<//head>/smUi",$store, $matches); //$head = $matches[1]; //echo $head. "/n"; //charset if($pageinfo[charset] == '' ) { preg_match('@<meta.+charset=([/w/-]+)[^>]*>@i',$store,$matches); $pageinfo[charset] = trim($matches[1]); } //desctiption preg_match('@<meta/s+name=/"*description/"*/s+content/s*=/s*([^/>]+)/*>@i',$store,$matches); //print_r($matches); $desc = trim($matches[1]); $pageinfo[description] = str_replace("/"", '',$desc); preg_match('@<meta/s+name=/"*keywords/"*/s+content/s*=/s*([^/>]+)/*>@i',$store,$matches); //print_r($matches); $keywords = trim($matches[1]); $pageinfo[keywords] = str_replace("/"", '',$keywords); preg_match("/<title>(.*)<//title>/smUi",$store, $matches); $pageinfo[title] = trim($matches[1]); preg_match("/<body.*>(.*)<//body>/smUi",$store, $matches); $pageinfo[body] = addslashes( replaceHtmlAndJs($matches[1]) ) ; $pageinfo['all'] = addslashes( replaceHtmlAndJs($store) ) ; //echo "charset = " . $pageinfo[charset] . "/n"; //print_r($pageinfo); //exit; return $pageinfo; } /** * 去掉所有的HTML标记和JavaScript标记 */ function replaceHtmlAndJs($document) { $document = trim($document); if (strlen($document) <= 0) { return $document; } $search = array ( "'<script[^>]*?>.*? // --></mce:script>'si", // 去掉 javascript "'<[///!]*?[^<>]*?>'si", // 去掉 HTML 标记 "'[/r/n/s+]'", // 去掉空白字符 "'&(/w+);'i" // 替换 HTML 实体 ); // 作为 PHP 代码运行 $replace = array ( "", "", "", "" ); return @preg_replace ($search, $replace, $document); } /***************************************************************** -- 函数名:delfile -- 作 用:全自动删除多余文件 -- 参 数:$dir 是要查找的文件目录 $table 为查找的表 $field 为字段名 -- 返回值:?? -- 实 例: 思路:最近做了个程序,发现当从数据库中删除数据的时候,而文件没有删除,这样的后果就是文件越来越多,这样是不好的。所以写了个自动判断文件是否与数据库中的对应,如果没有,就删除该文件。超级好用。 *******************************************************************/ function delfile($dir = "",$table,$field){ //获取目录下的文件 if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if($file!="."&&$file!=".."){ $exit[]=$file;} } closedir($dh); } } //获取数据库中的文件 图片地址 $sql="select $field from $table"; $query=mysql_query($sql); while($row=mysql_fetch_array($query)){ $pic[]=$row[pic]; } //这里的函数很重要啊 array_diff_key 本来是使用这个 好像有点问题 $result = @array_diff($exit, $pic); if($result==null){ echo "你没有文件要删除"; } foreach($result as $id=>$values){ echo "系统删除的文件为".$values."<br>"; $file=$dir.$values; unlink("$file"); } } /***************************************************************** -- 函数名:cookie -- 作 用:操作cookie的函数 -- 参 数: * @param string $name 名称 * @param mixed $value 当$value=null时删除名称为$name的cookie * @param integer $expire 有效时间 * @param string $path 有效路径 * @param string $domain 有效域名 * @return mixed -- 返回值:?? -- 实 例:cookie('name', 'xiaokai'); 设置cookie cookie('name'); 获取cookie cookie('name', null); 删除cookie *******************************************************************/ function cookie($name, $value = '', $expire = null, $path = null, $domain = null) { if (empty($value)) { if (is_null($value)) { //删除cookie if (isset($_COOKIE[$name])) { setcookie($name, $value, time()-3600, $path, $domain); unset($_COOKIE[$name]); return true; } } //获取cookie $value = isset($_COOKIE[$name]) ? $_COOKIE[$name] : null; return unserialize($value); } //设置cookie $expire = is_null($expire) ? $expire : time() + $expire; $value = serialize($value); return setcookie($name, $value, $expire, $path, $domain); } /***************************************************************** -- 函数名:xml2array -- 作 用:XML转换为数组函数 没用过,也不会用 -- 参 数:$originalXML ?? $attributes=true ?? -- 返回值:?? -- 实 例:?? *******************************************************************/ function xml2array($originalXML, $attributes=true) { $xmlArray = array(); $search = $attributes ? '|<((/S+)(.*))/s*>(.*)<//2>|Ums' : '|<((/S+)()).*>(.*)<//2>|Ums'; // normalize data $xml = preg_replace('|>/s*<|', ">/n<", $originalXML); // one tag per line $xml = preg_replace('|</?.*/?>|', '', $xml); // remove XML declarations $xml = preg_replace('|<(/S+?)(.*)/>|U', '<$1$2></$1>', $xml); //Expand singletons if (! preg_match_all($search, $xml, $xmlMatches)) return trim($originalXML); // bail out - no XML found foreach ($xmlMatches[1] as $index => $key) { if (! isset($xmlArray[$key])) $xmlArray[$key] = array(); $xmlArray[$key][] = xml2array($xmlMatches[4][$index], $attributes); } return $xmlArray; } /***************************************************************** -- 函数名:deldir -- 作 用:删除目录及所包含文件函数 -- 参 数:$dir 目录名 -- 返回值:布尔 -- 实 例:deldir("D:/www"); *******************************************************************/ function deldir($dir) { //打开文件目录 $dh = opendir($dir); //循环读取文件 while ($file = readdir($dh)) { if($file != '.' && $file != '..') { $fullpath = $dir . '/' . $file; //判断是否为目录 if(!is_dir($fullpath)) { echo $fullpath."已被删除<br>"; //如果不是,删除该文件 if(!unlink($fullpath)) { } } else { //如果是目录,递归本身删除下级目录 deldir($fullpath); } } } closedir($dh);//关闭目录 } /***************************************************************** -- 函数名:isCrawler -- 作 用:php判断爬虫函数 -- 参 数: -- 返回值:布尔 -- 实 例:echo isCrawler(); *******************************************************************/ function isCrawler() { if(ini_get('browscap')) { $browser= get_browser(NULL, true); if($browser['crawler']) { return true; } } else if (isset($_SERVER['HTTP_USER_AGENT'])){ $agent= $_SERVER['HTTP_USER_AGENT']; $crawlers= array( "/Googlebot/", "/Yahoo! Slurp;/", "/msnbot/", "/Mediapartners-Google/", "/Scooter/", "/Yahoo-MMCrawler/", "/FAST-WebCrawler/", "/Yahoo-MMCrawler/", "/Yahoo! Slurp/", "/FAST-WebCrawler/", "/FAST Enterprise Crawler/", "/grub-client-/", "/MSIECrawler/", "/NPBot/", "/NameProtect/i", "/ZyBorg/i", "/worio bot heritrix/i", "/Ask Jeeves/", "/libwww-perl/i", "/Gigabot/i", "/bot@bot.bot/i", "/SeznamBot/i", ); foreach($crawlers as $c) { if(preg_match($c, $agent)) { return true; } } } return false; } /***************************************************************** -- 函数名:file_search -- 作 用:文件搜索函数 -- 参 数:$directory 目录 $search 搜索的内容 $recursive = TRUE 是否循环 -- 返回值:布尔 -- 实 例:echo file_search("E:/www/js","MD5.js",false); 如果存在,输出 E:/www/js/MD5.js 如果不存在,则什么都不输出 *******************************************************************/ function file_search($directory, $search, $recursive = TRUE) { $res = FALSE; $dir_handle = opendir($directory); while( FALSE !== ($file = readdir($dir_handle)) ) { if( $file == '.' || $file == '..' ) { continue; } if( is_dir("$directory//$file") ) { if( $recursive ) { $res = file_search("$directory//$file", $search); if( $res !== FALSE ) { return $res; } } } if( $file == $search ) { return "$directory//$file"; } } return FALSE; } /***************************************************************** -- 函数名:whois_hichina -- 作 用:万网 whois(使用的接口为万网提供合法接口) 无值,不明白 -- 参 数:$domain 域名 -- 返回值: -- 实 例:echo whois_hichina('www.ite5e.com'); *******************************************************************/ function whois_hichina($domain) { preg_match("|<pre>(. ?)</pre>|is", @file_get_contents('http://whois.hichina.com/cgi-bin/whois?domain='.$domain.''), $whois); $whois[0] = str_replace('友情提示:按注册局要求,过期域名可能会处于注册商自动续费期阶段,您在此查询所看到的域名到期日仅供参考<br />请您<a href="http://www.net.cn/has_client/userlogon/user_logon1.asp" mce_href="http://www.net.cn/has_client/userlogon/user_logon1.asp" target="_blank" class="link_gl">进入会员区</a>查看该域名的实际到期时间,并请及时进行续费,谢谢!', '', ($whois[0]));//过滤掉此段文字 return $whois[0]; } /***************************************************************** -- 函数名:whois_xinnet -- 作 用:新网 whois (非新网提供,只是根据新网自身网站的url修改实现) 无值,不明白 -- 参 数:$domain 域名 -- 返回值: -- 实 例:echo whois_xinnet('www.ite5e.com'); *******************************************************************/ function whois_xinnet($domain) { preg_match("|<div class=/"lyTableInfoWrap/">(. ?)</div>|is", @file_get_contents( 'http://www.xinnet.cn/Modules/agent/serv/pages/domain_whois.jsp?domainNameWhois='.$domain.'&noCode=noCode'), $whois); return $whois[0]; } /***************************************************************** -- 函数名:init_dir -- 作 用:返回两个路径间的相对路径 -- 参 数:$dir_1 路径一 $dir_2 路径二 -- 返回值:数组 -- 实 例:init_dir("a/b/c/d/e.php","a/b/m/n/q.php") 返回 ../../m/n/ init_dir("a/b/c.php","a/b/d.php") 返回 null init_dir("a/b/c/d.php","a/b/c/m/n/q.php") 返回 m/n/ *******************************************************************/ function init_dir($dir_1,$dir_2) { $dir_1 = explode("/",str_replace("//","/",dirname($dir_1))); $dir_2 = explode("/",str_replace("//","/",dirname($dir_2))); foreach ($dir_1 as $key => $value) { if (!isset($dir_2[$key])) break; if ($value == $dir_2[$key]) unset($dir_1[$key],$dir_2[$key]); else break; } $out_dir = str_repeat("../",count($dir_1)); if ($out_dir) { $out_dir = substr($out_dir,0,strlen($out_dir)-1); array_unshift($dir_2,$out_dir); return implode("/",$dir_2)."/"; } if (!count($dir_2)) return ""; return implode("/",$dir_2)."/"; } /***************************************************************** -- 函数名:get_ip_place -- 作 用:获取ip并且转化为地址 -- 参 数: -- 返回值:数组 -- 实 例:$ip=get_ip_place(); print_r($ip); -- 说 明:代码须联网使用的,使用腾迅的一个api,即http://fw.qq.com/ipaddress *******************************************************************/ function get_ip_place(){ $ip=file_get_contents("http://fw.qq.com/ipaddress"); $ip=str_replace('"',' ',$ip); $ip2=explode("(",$ip); $a=substr($ip2[1],0,-2); $b=explode(",",$a); return $b; } /***************************************************************** -- 函数名:watermark -- 作 用:简单的图片加水印函数 -- 参 数:$imag_url 为要加水印的图片的路径 $str 为要在图片上加上的字符串 $route 加水印后的存放路径 -- 返回值: -- 实 例: *******************************************************************/ function watermark($imag_url,$str,$route) { $type_array=explode('.',$imag_url); $imag_type=$type_array[count($type_array)-1]; switch($imag_type) { case 'gif': $img=imagecreatefromgif($imag_url); break; case 'jpeg': $img=imagecreatefromjpeg($imag_url); break; case 'jpg': $img=imagecreatefromjpeg($imag_url); break; case 'png': $img=imagecreatefrompng($imag_url); break; default: $img=imagecreatefromgif($imag_url); break; } //字体颜色 $gray = imagecolorallocate($img , 235 , 235 , 235); $pink = imagecolorallocate($img, 255 , 128 , 255); $fontfile = "C:/WINDOWS/Fonts/SIMHEI.TTF";/* $fontfile 字体的路径*/ $str = iconv('GB2312','UTF-8',$str); /*将 gb2312 的字符集转换成 UTF-8 的字符*/ imagettftext($img, 30,0, 0, 200, $pink , $fontfile , $str);/* 加入中文水印 */ imagepng($img,$route); imagedestroy($img); } /***************************************************************** -- 函数名:get_tr_array -- 作 用:HTML表格的每行转为CSV格式数组 -- 参 数:$array -- 返回值:数组 -- 实 例:id,sub,type,regprice,natprice 1,4,Team,40,75 这就是CSV数组 *******************************************************************/ function get_tr_array($table) { $table = preg_replace("'<td[^>]*?>'si",'"',$table); $table = str_replace("</td>",'",',$table); $table = str_replace("</tr>","{tr}",$table); //去掉 HTML 标记 $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);//去掉空白字符 $table = preg_replace("'([rn])[s]+'","",$table); $table = str_replace(" ","",$table); $table = str_replace(" ","",$table); $table = explode(",{tr}",$table); array_pop($table); return $table; } /***************************************************************** -- 函数名:formatArray -- 作 用:删除数组中相同元素,只保留一个相同元素 -- 参 数:$array -- 返回值:数组 -- 实 例:$array = array('aa','bb','aa',3,4,5,5,5,5,'bc'); $arr = formatArray($array); print_r($arr); -- 说 明:一维数组去除重复元素使用array_unique即可,多维数组可用此 *******************************************************************/ function formatArray($array) { sort($array); $tem = ''; $temarray = array(); $j = 0; for($i=0;$i<count($array);$i++) { if($array[$i]!=$tem) { $temarray[$j] = $array[$i]; $j++; } $tem = $array[$i]; } return $temarray; } /***************************************************************** -- 函数名:fopen_url -- 作 用:获取远程文件内容自定义函数 -- 参 数:$url 文件http地址 -- 返回值:字符串 -- 实 例:echo fopen_url("http://www.php100.com"); //需要curl *******************************************************************/ function fopen_url($url) { if (function_exists('file_get_contents')) { $file_content = @file_get_contents($url); } elseif (ini_get('allow_url_fopen') && ($file = @fopen($url, 'rb'))){ $i = 0; while (!feof($file) && $i++ < 1000) { $file_content .= strtolower(fread($file, 4096)); } fclose($file); } elseif (function_exists('curl_init')) { $curl_handle = curl_init(); curl_setopt($curl_handle, CURLOPT_URL, $url); curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,1); curl_setopt($curl_handle, CURLOPT_FAILONERROR,1); curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Trackback Spam Check'); $file_content = curl_exec($curl_handle); curl_close($curl_handle); } else { $file_content = ''; } return $file_content; } /***************************************************************** -- 函数名:wordscut -- 作 用:截取一定长度的字符串 -- 参 数:$string, $length ,$sss=0 -- 返回值:数值型 -- 实 例:echo random(5);该函数对GB2312使用有效 *******************************************************************/ function wordscut($string, $length ,$sss=0) { if(strlen($string) > $length) { if($sss){ $length=$length - 3; $addstr=' ...'; } for($i = 0; $i < $length; $i++) { if(ord($string[$i]) > 127) { $wordscut .= $string[$i].$string[$i + 1]; $i++; } else { $wordscut .= $string[$i]; } } return $wordscut.$addstr; } return $string; } /***************************************************************** -- 函数名:GetIP -- 作 用:取得客户端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); } /***************************************************************** -- 函数名:createdir -- 作 用:创建相应的文件夹 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ 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); } } } } /***************************************************************** -- 函数名:checkEmail -- 作 用:判断邮箱地址 -- 参 数:$inAddress -- 返回值: -- 实 例: *******************************************************************/ function checkEmailcheckEmail($inAddress) { return (ereg("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(/.[a-zA-Z0-9_-])+",$inAddress)); } /***************************************************************** -- 函数名:gotourl -- 作 用:跳转 -- 参 数:$message='',$url='',$title='' -- 返回值: -- 实 例: *******************************************************************/ function gotourl($message='',$url='',$title='') { $html ="<html><head>"; if(!empty($url)) $html .="<meta http-equiv='refresh' content=/"3;url='".$url."'/">"; $html .="<link href="../templates/style.css" mce_href="templates/style.css" type=text/css rel=stylesheet>"; $html .="</head><body><br><br><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>"; if (!empty($url)) $html .="系统将在3秒后返回<br>如果您的浏览器不能自动返回,请点击[<a href=".$url." mce_href=".$url." target=_self>这里</a>]进入"; else $html .="[<a href="#" mce_href="#">返回</a>]"; $html .="</td></tr></table></td></tr></table>"; $html .="</body></html>"; echo $html; exit; } /***************************************************************** -- 函数名:getpage -- 作 用:分页(两个函数配合使用) -- 参 数:$sql,$page_size=20 -- 返回值: -- 实 例: *******************************************************************/ function getpage($sql,$page_size=20) { global $page,$totalpage,$sums; //out param $page = $_GET["page"]; //$eachpage = $page_size; $pagesql = strstr($sql," from "); $pagesql = "select count(*) as ids ".$pagesql; $result = mysql_query($pagesql); if($rs = mysql_fetch_array($result)) $sums = $rs[0]; $totalpage = ceil($sums/$page_size); if((!$page)||($page<1)) $page=1; $startpos = ($page-1)*$page_size; $sql .=" limit $startpos,$page_size "; return $sql; } function showbar($string="") { global $page,$totalpage; $out="共<font color='red'><b>".$totalpage."</b></font>页 "; $linkNum =4; $start = ($page-round($linkNum/2))>0 ? ($page-round($linkNum/2)) : "1"; $end = ($page+round($linkNum/2))<$totalpage ? ($page+round($linkNum/2)) : $totalpage; $prestart=$start-1; $nextend=$end+1; if($page<>1) $out .= "<a href="?page=1&&".$string."" mce_href="?page=1&&".$string.""title=第一页>第一页</a> "; if($start>1) $out.="<a href="?page=".$prestart."" mce_href="?page=".$prestart."" title=>..<<</a> "; for($t=$start;$t<=$end;$t++) { $out .= ($page==$t) ? "<font color='red'><b>[".$t."]</b></font> " : "<a href="?page=$t&&".$string."" mce_href="?page=$t&&".$string."">$t</a> "; } if($end<$totalpage) $out.="<a href="?page=".$nextend."&&".$string."" mce_href="?page=".$nextend."&&".$string."" title=>>>..</a>"; if($page<>$totalpage) $out .= " <a href="?page=".$totalpage."&&".$string."" mce_href="?page=".$totalpage."&&".$string."" title=最后页>最后页</a>"; return $out; } /***************************************************************** -- 函数名:random -- 作 用:产生随机字符串函数 -- 参 数:$length -- 返回值:数值型 -- 实 例:echo random(5); *******************************************************************/ function random($length) { $hash = ''; $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; $max = strlen($chars) - 1; mt_srand((double)microtime() * 1000000); for($i = 0; $i < $length; $i++) { $hash .= $chars[mt_rand(0, $max)]; } return $hash; } /***************************************************************** -- 函数名:cache_page(包括cache_page_go) -- 作 用:轻松快速缓存全站 -- 参 数: -- 返回值: -- 实 例:cache_page(300); 函数使用在页面的最上方 *******************************************************************/ function cache_page($refresh=20) { ob_start();//开启缓冲区 $hash=sha1($_SERVER['PHP_SELF'].'|G|'.serialize($_GET).'|P|'.serialize($_POST));//缓存文件名字 $file=dirname(__FILE__).'/cache/'.$hash;//缓存文件路径 if(!file_exists($file)){//缓存文件不存在 register_shutdown_function('cache_page_go',$file); }else{//缓存文件存在 if((time()-filemtime($file))>$refresh ){//缓存超时 register_shutdown_function('cache_page_go',$file);//调用函数 } else{//正常使用缓存文件 $f=file_get_contents($file);//取出缓存文件内容 echo $f.'缓存的哦';//输出缓存内容 $output=ob_get_contents();//取出缓冲区内容 ob_get_clean(); //清空缓冲区 echo $output; //输出 exit(); } } } function cache_page_go($file) { $output=ob_get_contents();//获取缓冲区内容 ob_get_clean(); //清空缓冲区 file_put_contents($file,$output,LOCK_EX);//写入缓存文件 echo $output.'新建的哦';//输出缓存内容 exit(); } /***************************************************************** -- 函数名:chkCode($string) -- 作 用:判断文件编码是GBK还是UTF8还是ASCII -- 参 数:$string -- 返回值:array -- 实 例:$a=chkCode("请"); //$a=chkCode("你好;"); print_r($a); *******************************************************************/ function chkCode($string) { $code = array('ASCII', 'GBK', 'UTF-8'); foreach($code as $c){ if( $string === iconv('UTF-8', $c, iconv($c, 'UTF-8', $string))){//转换编码后是不是相等 return $c; } } return null; } /****************************************************************** -- 函数名:call_fck($input_name,$input_value,$w='780',$h='580') -- 作 用:调用所有fck编辑器 待查看 -- 参 数:$input_name,$input_value,$w='780',$h='580' -- 返回值:? -- 实 例: *******************************************************************/ function call_fck($input_name,$input_value,$w='780',$h='580') { include_once 'fckeditor/fckeditor.php'; $fcked = new FCKeditor($input_name) ; $fcked->BasePath = 'fckeditor/'; $fcked->ToolbarSet = 'Simple' ; //工具栏设置 $fcked->InstanceName = $input_name ; $fcked->Width = $w; $fcked->Height = $h; $fcked->Value = $input_value; $fck_area = $fcked->CreateHtml(); $this->smarty->assign('fck_area',$fck_area); unset($fck_area) ; unset($fcked) ; } /****************************************************************** -- 函数名:get_all_url($cnstr) -- 作 用:取得一个页面上的所有超链接函数带实例 出错 -- 参 数:$cnstr -- 返回值:数组 -- 实 例:$url = ""; echo get_all_url($url); *******************************************************************/ function get_all_url($cnstr) { preg_match_all('/<as href="[" mce_href="[""|']?([^>"' ] )["|']?s*[^>]*>([^>] )</a>/i',$cnstr,$arr); return array('name'=>$arr[2],'url'=>$arr[1]); } /****************************************************************** -- 函数名:function get_td_array($table) -- 作 用:将HTML表格的每行每列转为数组,采集表格数据 -- 参 数:$table 定义表格的变量 -- 返回值:数组 -- 实 例:$table="<TABLE><TR><TD>1</TD><TD>2</TD></TR><TR><TD>3</TD><TD>4</TD></TR></TABLE>"; $a=get_td_array($table); print_r($a); *******************************************************************/ function get_td_array($table) { $table = preg_replace("'<table[^>]*?>'si","",$table); $table = preg_replace("'<tr[^>]*?>'si","",$table); $table = preg_replace("'<td[^>]*?>'si","",$table); $table = preg_replace("'<TABLE[^>]*?>'si","",$table); $table = preg_replace("'<TR[^>]*?>'si","",$table); $table = preg_replace("'<TD[^>]*?>'si","",$table); $table = str_replace("</tr>","{tr}",$table); $table = str_replace("</td>","{td}",$table); $table = str_replace("</TR>","{tr}",$table); $table = str_replace("</TD>","{td}",$table); //去掉 HTML 标记 $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table); //去掉空白字符 $table = preg_replace("'([rn])[s]+'","",$table); $table = str_replace(" ","",$table); $table = str_replace(" ","",$table); $table = explode('{tr}', $table); array_pop($table); foreach ($table as $key=>$tr) { $td = explode('{td}', $tr); array_pop($td); $td_array[] = $td; } return $td_array; } /****************************************************************** -- 函数名:removelink($str) -- 作 用:批量删除网页内容中超级链接的方法 -- 参 数:$str 删除的字符串 -- 返回值: -- 实 例:$str="<a href="/" mce_href="/""xxx/">超级链接</a>|<a href="/" mce_href="/""xxx/">这是个链接</a><br>"; echo removelink($str); *******************************************************************/ function removelink($str){ $mode=array("#<a href="/" mce_href="/""(.*)/">#iUs","#</a>#iUs"); $want=array("",""); $con=preg_replace($mode,$want,$str); return $con; } /****************************************************************** -- 函数名:get_content_url($content) -- 作 用:从一段文字中获得所有的HTTP中所有的值 有问题 -- 参 数:$str 删除的字符串 -- 返回值: -- 实 例:如:从background="http://mimg.126.net/xm/all/stamp/frame/img/100802/bg.png" style="font-size:14px;"> 得到http://mimg.126.net/xm/all/stamp/frame/img/100802/bg.png *******************************************************************/ function get_content_url($content){ $txt = preg_match("/[a-zA-z]+:[^/"/s]*",$content,$matches); return $txt; } /****************************************************************** -- 函数名:funcchinese($str,$num1='',$num2='') -- 作 用:判断中文正则 -- 参 数:$str 删除的字符串 -- 返回值: -- 实 例: *******************************************************************/ function funcchinese($str,$num1='',$num2='') { if($num1!='' and $num2!=''){ return (preg_match("/^([x81-xfe][x40-xfe]){".$num1.",".$num2."}$/",$str))?true:false; }else{ return (!eregi("[^x80-xff]","$str"))?true:false; } } /****************************************************************** -- 函数名:funcstrnum($str,$num1='',$num2='') -- 作 用:数字字母正则 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function funcstrnum($str,$num1='',$num2='') { if($num1!='' and $num2!=''){ return (preg_match("/^[^0-9a-za-z_@!.-]{".$num1.",".$num2."}$/",$str))?true:false; }else{ return (preg_match("/^[^0-9a-za-z_@!.-]/",$str))?true:false; } } /****************************************************************** -- 函数名:funcstr($str,$num1='',$num2='') -- 作 用:字符正则表达试 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function funcstr($str,$num1='',$num2='') { if($num1!='' and $num2!=''){ return (preg_match("/^[a-za-z]{".$num1.",".$num2."}$/",$str))?true:false; }else{ return (preg_match("/^[a-za-z]/",$str))?true:false; } } /****************************************************************** -- 函数名:funcnum($str,$num1='',$num2='') -- 作 用:数字正则表达试 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function funcnum($str,$num1='',$num2='') { if($num1!='' and $num2!=''){ return (preg_match("/^[0-9]{".$num1.",".$num2."}$/",$str))?true:false; }else{ return (preg_match("/^[0-9]/",$str))?true:false; } } /****************************************************************** -- 函数名:funccard($str) -- 作 用:身份证正则表达式 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function funccard($str) { return (preg_match('/(^([d]{15}|[d]{18}|[d]{17}x)$)/',$str))?true:false; } /****************************************************************** -- 函数名:funcemail($str) -- 作 用:邮箱正则表达式 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function funcemail($str) { return (preg_match('/^[_.0-9a-z-a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/',$str))?true:false; } /****************************************************************** -- 函数名:funcphone($str) -- 作 用:电话号码正则表达试 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function funcphone($str) { return (preg_match("/^(((d{3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,8}$/",$str))?true:false; } /****************************************************************** -- 函数名: -- 作 用:手机号码正则表达试 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function funcmtel($str) { return (preg_match("/(?:13d{1}|15[03689])d{8}$/",$str))?true:false; } /****************************************************************** -- 函数名:funczip($str) -- 作 用:邮编正则表达试 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function funczip($str) { return (preg_match("/^[0-9]d{5}$/",$str))?true:false; } /****************************************************************** -- 函数名:funcurl($str) -- 作 用:url正则表达试 有问题 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function funcurl($str) { return (preg_match("/^http://[a-za-z0-9]+.[a-za-z0-9]+[/=?%-&_~`@[]':+!]*([^<>""])*$/",$str))?true:false; } /****************************************************************** -- 函数名:get_php_url() -- 作 用:获得当前的脚本网址 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function get_php_url() { if(!empty($_SERVER["REQUEST_URI"])){ $scriptName = $_SERVER["REQUEST_URI"]; $nowurl = $scriptName; }else{ $scriptName = $_SERVER["PHP_SELF"]; if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName; else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"]; } return $nowurl; } /****************************************************************** -- 函数名:GetAlabNum($fnum) -- 作 用:把全角数字转为半角数字 -- 参 数:$fnum -- 返回值:数字 -- 实 例:GetAlabNum(123456); *******************************************************************/ function GetAlabNum($fnum) { $nums = array("0","1","2","3","4","5","6","7","8","9"); $fnums = "0123456789"; for($i=0;$i<=9;$i++) $fnum = str_replace($nums[$i],$fnums[$i],$fnum); $fnum = ereg_replace("[^0-9/.]|^0{1,}","",$fnum); if($fnum=="") $fnum=0; return $fnum; } /****************************************************************** -- 函数名:pregstring($str) -- 作 用:去除所有html标签 -- 参 数:$str -- 返回值: -- 实 例:echo pregstring(字符串); //调用函数 echo pregstring("<div align='center'>afddasfds</div><a href="www.bc.com" mce_href="www.bc.com">adf</a>"); //调用函数 *******************************************************************/ function pregstring($str) { $strtemp = trim($str); $search = array( "|'|Uis", "|<mce:script[^><!-- ].*? // --></mce:script>|Uis", // 去掉 javascript "|/[字定义/].*/[/字定义/]|Uis", // 去掉缩略图 "|<[///!].*?[^<>]*?>|Uis", // 去掉 HTML 标记 "'>(quot|#34);'i", // 替换 HTML 实体 "'>(amp|#38);'i", "|,|Uis", "|[/s]{2,}|is", "[>nbsp;]isu", "|[$]|Uis", ); $replace = array( "`", "", "", "", "", "", "", " ", " ", " ", ); $text = preg_replace($search, $replace, $strtemp); return $text; } /****************************************************************** -- 函数名:SimpleText2Html($txt) -- 作 用:简单去除HTML标记 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function SimpleText2Html($txt) { $txt = str_replace(" "," ",$txt); $txt = str_replace("<","<",$txt); $txt = str_replace(">",">",$txt); $txt = preg_replace("/[/r/n]{1,}/isU","<br/>/r/n",$txt); return $txt; } /****************************************************************** -- 函数名:ClearHtml($str) -- 作 用:清除HTML标记 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function ClearHtml($str) { $str = str_replace('<','<',$str); $str = str_replace('>','>',$str); return $str; } /****************************************************************** -- 函数名:relative_to_absolute($content, $feed_url) -- 作 用:相对路径转化成绝对路径 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function relative_to_absolute($content, $feed_url) { preg_match('/(http|https|ftp):/', $feed_url, $protocol); $server_url = preg_replace("/(http|https|ftp|news):/", "", $feed_url); $server_url = preg_replace("///.*/", "", $server_url); if ($server_url == '') { return $content; } if (isset($protocol[0])) { $new_content = preg_replace('/href="///', 'href="'.$protocol[0].$server_url.'/', $content); $new_content = preg_replace('/src="///', 'src="'.$protocol[0].$server_url.'/', $new_content); } else { $new_content = $content; } return $new_content; } /****************************************************************** -- 函数名:get_all_url($code) -- 作 用:取得所有链接 -- 参 数:$code -- 返回值:数组rl -- 实 例:$url = "<a href="www.baidu.com" mce_href="www.baidu.com">abcd</a>afdasdfasfdasdfaf"; $a= get_all_u($url); print_r($a); *******************************************************************/ function get_all_url($code) { preg_match_all('/<a/s+href=["|/']?([^>"/' ]+)["|/']?/s*[^>]*>([^>]+)<//a>/i',$code,$arr); return array('name'=>$arr[2],'url'=>$arr[1]); } /****************************************************************** -- 函数名:get_tag_data($str, $start, $end) -- 作 用:获取指定标记中的内容 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function get_tag_data($str, $start, $end) { if ( $start == '' || $end == '' ){ return; } $str = explode($start, $str); $str = explode($end, $str[1]); return $str[0]; } /****************************************************************** -- 函数名:get_tr_array($table) -- 作 用: -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function get_tr_array($table) { $table = preg_replace("'<td[^>]*?>'si",'"',$table); $table = str_replace("</td>",'",',$table); $table = str_replace("</tr>","{tr}",$table); //去掉 HTML 标记 $table = preg_replace("'<[///!]*?[^<>]*?>'si","",$table); //去掉空白字符 $table = preg_replace("'([/r/n])[/s]+'","",$table); $table = str_replace(" ","",$table); $table = str_replace(" ","",$table); $table = explode(",{tr}",$table); array_pop($table); return $table; } /****************************************************************** -- 函数名:get_td_array($table) -- 作 用:将HTML表格的每行每列转为数组,采集表格数据 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function get_td_array($table) { $table = preg_replace("'<table[^>]*?>'si","",$table); $table = preg_replace("'<tr[^>]*?>'si","",$table); $table = preg_replace("'<td[^>]*?>'si","",$table); $table = str_replace("</tr>","{tr}",$table); $table = str_replace("</td>","{td}",$table); //去掉 HTML 标记 $table = preg_replace("'<[///!]*?[^<>]*?>'si","",$table); //去掉空白字符 $table = preg_replace("'([/r/n])[/s]+'","",$table); $table = str_replace(" ","",$table); $table = str_replace(" ","",$table); $table = explode('{tr}', $table); array_pop($table); foreach ($table as $key=>$tr) { $td = explode('{td}', $tr); array_pop($td); $td_array[] = $td; } return $td_array; } /****************************************************************** -- 函数名:split_en_str($str,$distinct=true) -- 作 用:返回字符串中的所有单词 $distinct=true 去除重复,采集时会用 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function split_en_str($str,$distinct=true) { preg_match_all('/([a-zA-Z]+)/',$str,$match); if ($distinct == true) { $match[1] = array_unique($match[1]); } sort($match[1]); return $match[1]; } /****************************************************************** -- 函数名:getimg($url,$filename) -- 作 用:返回字符串中的所有单词 $distinct=true 去除重复 -- 参 数: -- 返回值: -- 实 例: *******************************************************************/ function getimg($url,$filename) { /*判断图片的url是否为空,如果为空停止函数*/ if($url==""){ return false; } /*取得图片的扩展名,存入变量$ext中*/ $ext=strrchr($url,"."); /*判断是否是合法的图片文件*/ if($ext!=".gif" && $ext!=".jpg"){ return false; } /*读取图片*/ $img=file_get_contents($url); /*打开指定的文件*/ $fp=@fopen($filename.$ext,"a"); /*写入图片到指点的文件*/ fwrite($fp,$img); /*关闭文件*/ fclose($fp); /*返回图片的新文件名*/ return $filename.$ext; } /****************************************************************** -- 函数名:change2pinyin($str,$type='') -- 作 用:返回字符串中的所有单词 $distinct=true 去除重复 -- 参 数: -- 返回值: -- 实 例:例如:echo change2pinyin("中华人民共和国"); *******************************************************************/ $PinYinDB=array( array("a",-20319), array("ai",-20317), array("an",-20304), array("ang",-20295), array("ao",-20292), array("ba",-20283), array("bai",-20265), array("ban",-20257), array("bang",-20242), array("bao",-20230), array("bei",-20051), array("ben",-20036), array("beng",-20032), array("bi",-20026), array("bian",-20002), array("biao",-19990), array("bie",-19986), array("bin",-19982), array("bing",-19976), array("bo",-19805), array("bu",-19784), array("ca",-19775), array("cai",-19774), array("can",-19763), array("cang",-19756), array("cao",-19751), array("ce",-19746), array("ceng",-19741), array("cha",-19739), array("chai",-19728), array("chan",-19725), array("chang",-19715), array("chao",-19540), array("che",-19531), array("chen",-19525), array("cheng",-19515), array("chi",-19500), array("chong",-19484), array("chou",-19479), array("chu",-19467), array("chuai",-19289), array("chuan",-19288), array("chuang",-19281), array("chui",-19275), array("chun",-19270), array("chuo",-19263), array("ci",-19261), array("cong",-19249), array("cou",-19243), array("cu",-19242), array("cuan",-19238), array("cui",-19235), array("cun",-19227), array("cuo",-19224), array("da",-19218), array("dai",-19212), array("dan",-19038), array("dang",-19023), array("dao",-19018), array("de",-19006), array("deng",-19003), array("di",-18996), array("dian",-18977), array("diao",-18961), array("die",-18952), array("ding",-18783), array("diu",-18774), array("dong",-18773), array("dou",-18763), array("du",-18756), array("duan",-18741), array("dui",-18735), array("dun",-18731), array("duo",-18722), array("e",-18710), array("en",-18697), array("er",-18696), array("fa",-18526), array("fan",-18518), array("fang",-18501), array("fei",-18490), array("fen",-18478), array("feng",-18463), array("fo",-18448), array("fou",-18447), array("fu",-18446), array("ga",-18239), array("gai",-18237), array("gan",-18231), array("gang",-18220), array("gao",-18211), array("ge",-18201), array("gei",-18184), array("gen",-18183), array("geng",-18181), array("gong",-18012), array("gou",-17997), array("gu",-17988), array("gua",-17970), array("guai",-17964), array("guan",-17961), array("guang",-17950), array("gui",-17947), array("gun",-17931), array("guo",-17928), array("ha",-17922), array("hai",-17759), array("han",-17752), array("hang",-17733), array("hao",-17730), array("he",-17721), array("hei",-17703), array("hen",-17701), array("heng",-17697), array("hong",-17692), array("hou",-17683), array("hu",-17676), array("hua",-17496), array("huai",-17487), array("huan",-17482), array("huang",-17468), array("hui",-17454), array("hun",-17433), array("huo",-17427), array("ji",-17417), array("jia",-17202), array("jian",-17185), array("jiang",-16983), array("jiao",-16970), array("jie",-16942), array("jin",-16915), array("jing",-16733), array("jiong",-16708), array("jiu",-16706), array("ju",-16689), array("juan",-16664), array("jue",-16657), array("jun",-16647), array("ka",-16474), array("kai",-16470), array("kan",-16465), array("kang",-16459), array("kao",-16452), array("ke",-16448), array("ken",-16433), array("keng",-16429), array("kong",-16427), array("kou",-16423), array("ku",-16419), array("kua",-16412), array("kuai",-16407), array("kuan",-16403), array("kuang",-16401), array("kui",-16393), array("kun",-16220), array("kuo",-16216), array("la",-16212), array("lai",-16205), array("lan",-16202), array("lang",-16187), array("lao",-16180), array("le",-16171), array("lei",-16169), array("leng",-16158), array("li",-16155), array("lia",-15959), array("lian",-15958), array("liang",-15944), array("liao",-15933), array("lie",-15920), array("lin",-15915), array("ling",-15903), array("liu",-15889), array("long",-15878), array("lou",-15707), array("lu",-15701), array("lv",-15681), array("luan",-15667), array("lue",-15661), array("lun",-15659), array("luo",-15652), array("ma",-15640), array("mai",-15631), array("man",-15625), array("mang",-15454), array("mao",-15448), array("me",-15436), array("mei",-15435), array("men",-15419), array("meng",-15416), array("mi",-15408), array("mian",-15394), array("miao",-15385), array("mie",-15377), array("min",-15375), array("ming",-15369), array("miu",-15363), array("mo",-15362), array("mou",-15183), array("mu",-15180), array("na",-15165), array("nai",-15158), array("nan",-15153), array("nang",-15150), array("nao",-15149), array("ne",-15144), array("nei",-15143), array("nen",-15141), array("neng",-15140), array("ni",-15139), array("nian",-15128), array("niang",-15121), array("niao",-15119), array("nie",-15117), array("nin",-15110), array("ning",-15109), array("niu",-14941), array("nong",-14937), array("nu",-14933), array("nv",-14930), array("nuan",-14929), array("nue",-14928), array("nuo",-14926), array("o",-14922), array("ou",-14921), array("pa",-14914), array("pai",-14908), array("pan",-14902), array("pang",-14894), array("pao",-14889), array("pei",-14882), array("pen",-14873), array("peng",-14871), array("pi",-14857), array("pian",-14678), array("piao",-14674), array("pie",-14670), array("pin",-14668), array("ping",-14663), array("po",-14654), array("pu",-14645), array("qi",-14630), array("qia",-14594), array("qian",-14429), array("qiang",-14407), array("qiao",-14399), array("qie",-14384), array("qin",-14379), array("qing",-14368), array("qiong",-14355), array("qiu",-14353), array("qu",-14345), array("quan",-14170), array("que",-14159), array("qun",-14151), array("ran",-14149), array("rang",-14145), array("rao",-14140), array("re",-14137), array("ren",-14135), array("reng",-14125), array("ri",-14123), array("rong",-14122), array("rou",-14112), array("ru",-14109), array("ruan",-14099), array("rui",-14097), array("run",-14094), array("ruo",-14092), array("sa",-14090), array("sai",-14087), array("san",-14083), array("sang",-13917), array("sao",-13914), array("se",-13910), array("sen",-13907), array("seng",-13906), array("sha",-13905), array("shai",-13896), array("shan",-13894), array("shang",-13878), array("shao",-13870), array("she",-13859), array("shen",-13847), array("sheng",-13831), array("shi",-13658), array("shou",-13611), array("shu",-13601), array("shua",-13406), array("shuai",-13404), array("shuan",-13400), array("shuang",-13398), array("shui",-13395), array("shun",-13391), array("shuo",-13387), array("si",-13383), array("song",-13367), array("sou",-13359), array("su",-13356), array("suan",-13343), array("sui",-13340), array("sun",-13329), array("suo",-13326), array("ta",-13318), array("tai",-13147), array("tan",-13138), array("tang",-13120), array("tao",-13107), array("te",-13096), array("teng",-13095), array("ti",-13091), array("tian",-13076), array("tiao",-13068), array("tie",-13063), array("ting",-13060), array("tong",-12888), array("tou",-12875), array("tu",-12871), array("tuan",-12860), array("tui",-12858), array("tun",-12852), array("tuo",-12849), array("wa",-12838), array("wai",-12831), array("wan",-12829), array("wang",-12812), array("wei",-12802), array("wen",-12607), array("weng",-12597), array("wo",-12594), array("wu",-12585), array("xi",-12556), array("xia",-12359), array("xian",-12346), array("xiang",-12320), array("xiao",-12300), array("xie",-12120), array("xin",-12099), array("xing",-12089), array("xiong",-12074), array("xiu",-12067), array("xu",-12058), array("xuan",-12039), array("xue",-11867), array("xun",-11861), array("ya",-11847), array("yan",-11831), array("yang",-11798), array("yao",-11781), array("ye",-11604), array("yi",-11589), array("yin",-11536), array("ying",-11358), array("yo",-11340), array("yong",-11339), array("you",-11324), array("yu",-11303), array("yuan",-11097), array("yue",-11077), array("yun",-11067), array("za",-11055), array("zai",-11052), array("zan",-11045), array("zang",-11041), array("zao",-11038), array("ze",-11024), array("zei",-11020), array("zen",-11019), array("zeng",-11018), array("zha",-11014), array("zhai",-10838), array("zhan",-10832), array("zhang",-10815), array("zhao",-10800), array("zhe",-10790), array("zhen",-10780), array("zheng",-10764), array("zhi",-10587), array("zhong",-10544), array("zhou",-10533), array("zhu",-10519), array("zhua",-10331), array("zhuai",-10329), array("zhuan",-10328), array("zhuang",-10322), array("zhui",-10315), array("zhun",-10309), array("zhuo",-10307), array("zi",-10296), array("zong",-10281), array("zou",-10274), array("zu",-10270), array("zuan",-10262), array("zui",-10260), array("zun",-10256), array("zuo",-10254) ); function GetPinYin($num,$type) { global $PinYinDB; if($num>0&&$num<160){ return chr($num); } elseif($num<-20319||$num>-10247){ return ""; }else{ for($i=count($PinYinDB)-1;$i>=0;$i--) { if($PinYinDB[$i][1]<=$num)break; } if($type==1){ for($ii=0;$ii<strlen($PinYinDB[$i][0]);$ii++){ $letter=substr($PinYinDB[$i][0],$ii,1); if($ii==0){ $letter=strtoupper($letter); } $string.=$letter; } return $string; }else{ return $PinYinDB[$i][0]; } } } function change2pinyin($str,$type='') { $ret=""; for($i=0;$i<strlen($str);$i++){ $p=ord(substr($str,$i,1)); if($p>160){ $q=ord(substr($str,++$i,1)); $p=$p*256+$q-65536; } $ret.=GetPinYin($p,$type); } return $ret; } /* ****************************************************************** 结束标记 ****************************************************************** */ ?>

PHP常用函数汇总-其中有的有些问题有待纠正相关推荐

  1. matlab常用函数汇总

    matlab常用函数汇总 1.特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 inputname 输入参数名 NaN ...

  2. Oracle常用函数汇总记录

    Oracle常用函数汇总记录 一.SUBSTR 截取函数 用法:substr(字符串,截取开始位置,截取长度) //返回截取的字, 字符串的起始位置为1,截取时包含起始位置字符 1.SUBSTR( & ...

  3. Hive内置函数与常用函数汇总

    目录 Hive内置函数汇总 字符函数(字符串操作) 数学函数 集合函数 类型转换函数 日期函数 条件函数 聚合函数 表生成函数 辅助功能类函数 数据屏蔽函数(从Hive 2.1.0开始) Hive常用 ...

  4. 干货|219个opencv常用函数汇总

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者丨AmosLLc 来源丨新机器视觉      作者为CSDN博主「AmosLLc」 原文链接:https: ...

  5. Python中处理字符串的常用函数汇总【文末送书】

    正式的Python专栏第23篇,同学站住,别错过这个从0开始的文章! 今天我们说了字符串的基础,格式化,这次我们讲解字符串的常用函数,不要错过! (文本送书,评论区抽取一位送书) 前两篇都在本文同个专 ...

  6. tf2常用数据类型与常用函数汇总

    本篇文章将对tf2的一些常用函数及类进行记录,以方便以后使用. tf2的wiki教程为 http://wiki.ros.org/tf2/Tutorials tf2的源码地址为 https://gith ...

  7. thinkphp5常用函数汇总_THINKSNS常用函数

    Thinksns 常用函数一览表: 以下是 extend.php : * function get_client_ip() {} 获取客户端 IP 地址 * function msubstr($str ...

  8. C++编程题最常用函数汇总

    内容会持续更新,有错误的地方欢迎指正,谢谢! 1.类型转化 string转int的方式 采用标准库cstdlib中atoi函数,<cstdlib>是C++里面的一个常用函数库, 等价于C中 ...

  9. DB2数据库常用函数汇总

     DB2常用函数 AVG 返回平均值 语法:            .-ALL------. >>-AVG--(--+----------+--expression--)------- ...

最新文章

  1. Unit05: 创建和访问数组 、 数组的常用方法_1
  2. Java开发环境的搭建以及使用eclipse从头一步步创建java项目
  3. 百亿级数据分表后怎么分页查询?
  4. 网易加速5G下视频技术应用,携手南京银行数字化转型
  5. Java Web——文件下载时中文文件名乱码问题解决方案
  6. IOS学习之蓝牙4.0
  7. 【Qt】QModbusDevice类
  8. GUI 快捷键的实现思路
  9. java 异常 中英文_史上最全的Java中所有Exception异常中英文对照
  10. 分享个最终幻想勇气启示录脚本,手游上能一键推图自动升级
  11. SQL Server无法连接客户端的问题
  12. pcs7服务器一直显示在同步,【征文】PCS7 诡异的时间同步问题
  13. OpenCV图像预处理常用函数及流程
  14. px4原生源码学习-(4)--Nuttx 实时操作系统编程
  15. [转]我奋斗了18年不是为了和你一起喝咖啡
  16. Sql Server 还原数据库并重命名
  17. k2450 linux 显卡驱动,Debian系统安装NVIDIA驱动支持双显卡切换
  18. 动态域名解析,快解析有哪些优势?
  19. 刘未鹏的博中带的技术博客链接
  20. 大数据学习计划(不断改善)(小白入门指南)

热门文章

  1. Recursive-NeRF
  2. AHP层次分析法matlab实现
  3. 毕业设计-基于SSM实现酒店入住预定管理系统
  4. java 右shift键_【已解决】Eclipse中Ctrl+Shift+右箭头无法实现一次性选择整个单词(Ctrl+右箭头无法实现整个单词级别的移动)...
  5. orange pi 运行c语言程序,上手OrangePi Zero+
  6. Unity Shader - The Fresnel Effect 菲涅尔效应
  7. cisco Routing-Routing-HSRP配置
  8. python字典按照键和值进行排序
  9. Dialog 按照顺序弹窗
  10. 刷题第45, 46天 | 70. 爬楼梯 (进阶)、322. 零钱兑换、279.完全平方数、139.单词拆分