有零填充、截取中文、halt、html跳轉、js跳轉、過濾html、檢查郵箱合法、轉換文字中的超連結為可點擊連接、返回時間格式等等常用php函數庫。
-
//因為前面後台要用,所以放在supermario資料夾下方便重複使用
-
- /**
- * 喔~可愛滴小數點~喔~可愛滴千位數~
- * 如果位數超過4位,則將第3位前增加,
- * @param int $gold
- * @return string
- */
- function showGold($gold) {
- return number_format($gold);
- }
-
- /**
- * 頁面壓縮輸出
- */
- function ob_callback($buffer) {
- function ob_callback($buffer)> header('Etag: '.md5($buffer));
- if(extension_loaded('zlib') AND strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip") ) {
- $buffer = gzen( $buffer,9);
- header('Content-Encoding: gzip');
- header('Vary: Accept-Encoding');
- //header('途經:www.guangxitravel .cn' );
- header('Content-Length: '.strlen($buffer));
- }
- return $buffer;
- }
-
- /**
- * 沒有提示的情況下跳轉頁
- * @param string $url
- * @param string $target
- */
- function go($url='', $target='parent') {
- if ($url != "") {
- echo('');
- } else {
- echo(' ');
- }
- }
-
- /**
- * 清除磁碟,ECHO,然後DIE(可惡的javascript+php…純文字)輸出,俱樂部有一些空白字元… …)
- * @param string $msg
- */
- function justSay($msg) {
- ob_clean();
- die($msg);
- }
-
- /**
- * 将符合第二个参数的第一个参数里的内容替换为红色
- * @param string $data
- * @param array $keyword
- * @return string
- */
- function change_keyword($data, $keywords) {
- if (is_array($keywords)) {
- foreach ($keywords as $k => $v) {
- $data = str_replace($v, '' . $v . '', $data);
- }
- return $data;
- } else {
- return str_replace($keywords, '' . $keywords . '', $data);
- }
- }
-
- /**
- * 创建完全随机的颜色
- * @return string
- */
- function makeColor() {
- $key = '#';
- for ($i = 0; $i < 6; $i++)
- $key.= rand(0, 9);//生成php随机数
- return $key;
- }
- /**
- * 自动加载模型和第三方功能类
- * @param string $className
- */
- function autoLoad($className) {
- if (strstr($_SERVER['REQUEST_URI'], "/operator/") == false) { //服务器不支持SCRIPT_URL
- if (file_exists(siteRoot . '/client/model/' . $className . '.php')) {
- require_once siteRoot . '/client/model/' . $className . '.php';
- return;
- }
- } else {
- if (file_exists(siteRoot . '/manager/model/' . $className . '.php')) {
- require_once siteRoot . '/manager/model/' . $className . '.php';
- return;
- }
- }
- if (file_exists(siteRoot . '/public/modules/' . $className . '.php')) {
- require_once siteRoot . '/public/modules/' . $className . '.php';
- return;
- }
- if (file_exists(siteRoot . '/client/order/model/' . $className . '.php')) {
- require_once siteRoot . '/client/order/model/' . $className . '.php';
- return;
- }
- }
- /**
- * 用javascript弹出一条信息
- * @param $message
- */
- function message($message='') {
- echo('');
- }
-
- /**
- * 模拟strstr()的第三个参数,返回$h中,$n之前的数据
- * //$h = haystack, $n = needle
- * @param $h
- * @param $n
- * @return
- */
- function strstrb($h, $n) {
- return array_shift(explode($n, $h, 2));
- }
-
- /**
- * 显示错误信息,并跳转至$pageurl,含有样式
- *
- * @param string $messages
- * @param string $pageurl
- * @param int $msc 秒数
- */
- function msg($messages, $pageurl='javascript:history.back();', $msc=5) {
- echo 'System Message
-
- *{margin:0;padding:0px}
- body{background:#fff;color:#333;font:12px Verdana, Tahoma, sans-serif;text-align:center;margin:0 auto;}
- a{text-decoration:none;color:#29458C}
- a:hover{text-decoration:underline;color:#f90}
- #msg{border:1px solid #c5d7ef;text-align:left;margin:10% auto; width:50%}
- #msgtitle{padding:5px 10px;background:#f0f6fb;border-bottom:1px #c5d7ef solid}
- #msgtitle h1{font-size:14px;font-weight:bold;padding-left:10px;border-left:3px solid #acb4be;color:#1f3a87}
- #msgcontent {padding:20px 50px;}
- #msgcontent li{display:block;padding:5px;list-style:none;}
- #msgcontent p{text-align:center;margin-top:10px;padding:0}
-
-
-
-
- ';
- exit();
- }
-
- /**
- * 检查后面的日期是否大于前面的日期
- * @param type $datecome 前面的日期
- * @param type $datego 后面的日期
- * @return type
- */
- function sub_date($datecome, $datego) {
- $d1 = strtotime($datecome);
- $d2 = strtotime($datego);
- $days = round(($d2 - $d1) / 3600 / 24);
- $days = $days < 1 ? 0 : $days;
- return $days;
- }
- /**
- * 将$string的$length后边的内容用$dot替换
- * @param string $string
- * @param int $length
- * @param string $dot
- * @return string
- */
- function cutstr($string, $length, $dot = '...') {
- @extract($string);
- if (strlen($string) <= $length) {
- return $string;
- }
- $string = htmlspecialchars($string);
- $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
- $strcut = '';
- $n = $tn = $noc = 0;
- while ($n < strlen($string)) {
- $t = ord($string[$n]);
- if ($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
- $tn = 1;
- $n++;
- $noc++;
- } elseif (194 <= $t && $t <= 223) {
- $tn = 2;
- $n += 2;
- $noc += 2;
- } elseif (224 <= $t && $t < 239) {
- $tn = 3;
- $n += 3;
- $noc += 2;
- } elseif (240 <= $t && $t <= 247) {
- $tn = 4;
- $n += 4;
- $noc += 2;
- } elseif (248 <= $t && $t <= 251) {
- $tn = 5;
- $n += 5;
- $noc += 2;
- } elseif ($t == 252 || $t == 253) {
- $tn = 6;
- $n += 6;
- $noc += 2;
- } else {
- $n++;
- }
- if ($noc >= $length) {
- break;
- }
- }
- if ($noc > $length) {
- $n -= $tn;
- }
- $strcut = substr($string, 0, $n);
- $strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $strcut);
- return $strcut . $dot;
- }
-
- /**
- +----------------------------------------------------------
- * 如果 magic_quotes_gpc 为开启状态,则使用此方法使用为特殊符号前增加转移符号
- +----------------------------------------------------------
- * @access public
- +----------------------------------------------------------
- * @param string $value 可以为数组
- +----------------------------------------------------------
- * @return string
- +----------------------------------------------------------
- */
- function kaddslashes($value) {
- return $value = is_array($value) ? array_map('kaddslashes', $value) : addslashes($value);
- }
-
- /**
- +----------------------------------------------------------
- * 为特殊符号前去除转移符号
- +----------------------------------------------------------
- * @access public
- +----------------------------------------------------------
- * @param string $value 可以为数组
- +----------------------------------------------------------
- * @return string
- +----------------------------------------------------------
- */
- function kstripcslashes($value) {
- return $value = is_array($value) ? array_map('kstripcslashes', $value) : stripcslashes($value);
- }
-
- /**
- * 将字符串内容html实体化,避免一些非法信息直接执行。如果参数是数组,则递归。
- * @param string $value
- * @return array
- */
- function khtmlspecialchars($value) {
- return is_array($value) ? array_map('khtmlspecialchars', $value) :
- preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1', str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $value));
- }
-
- /**
- * 将字符串中的html去除,如果参数是数组,则递归。
- * @param string $value
- * @return array
- */
- function striptags($value) {
- return $value = is_array($value) ? array_map('striptags', $value) : strip_tags($value);
- }
-
- /**
- * 檢查email的合法性
- *
- * @param string $email
- * @return bool
- */
- function check_email($email) {
- if (preg_m ("/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9] +)+[.][a-z]{2,3}([.][a-z]{2})?/i", $email)) {
- 回傳true;
- } else {
- return false;
- }
- }
-
- /**
- * 安全電子郵件地址
- *
- * @param string $email
- * @param string $title
- * @param $attributes
- * @return * @param $attributes
- * @return
- */
- function safe_mailto($email, $title = '', $attributes = '') {
- if (is_array($email)) {
- $tmp = $email;
- unset($email);
- extract($tmp);
- }
- $title = (string) $標題;
-
- if ($title == "") {
- $title = $email;
- }
-
- for ($i = 0; $i $x[] = substr('
- if ($attributes != '') {
- if (is_array ($attributes)) {
- foreach ($attributes as $key => $val ) {
- $x[] = ' ' 。 '=';
- for ($i = 0; $i $x[] = "|" .ord(substr($val, $i) , 1));
- }
- $x[] = '"';
- }
- } else {
- for ($i = 0; $i $x[] = substr($attributes, $i, 1);
- }
- }
- }
-
- $x [] = '> ';
-
- $temp = array();
- for ($i = 0; $i $ordinal = ord ($title[ $i]);
-
- if ($ordinal $x[] = "|" 。 ($temp) == 0) {
- $count = ($ordinal }
-
- $temp[] = $ordinal;
- if (countcount ($temp) == $count) {
- $number = ($count == 3 )? 64) * 64) + ($temp['2'] % 64) : (($temp['0'] % 32) * 64) + ($temp['1'] % 64) ;
- $ x[] = "|" 。 ] = ' $x[] = '/';
- $x[] = 'a';
- $x[] = '>';
-
- $x = array_reverse($x) ;
- ob_start();
- ?> $buffer = ob_get_contents( );
- ob_end_clean();
- if ($tmp == '' || $tmp == NULL) {
- return $buffer;
- } else {
- echo $buffer
- }
- }
-
- /**
- +---------------------------------------------- ------------
- * 轉換文字中的超連結為可點擊連線
- +-------------------- --------------------------------------
- * @access public
- +- -------------------------------------------------- -------
- * @param string $text 要處理的字串
- +------------------------- ---------------------------------
- * @return string
- +------ -------------------------------------------------- --
- */
- function makeLink($string) {
- $validChars = "a-z0-9/-_+=.~ !%@?#&;:$|" ;
- $patterns = array(
- "/(^|[^]_a-z0-9-="'/])([a-z]+?)://([{$validChars}]+ )/ei",
- "/(^|[^]_a-z0-9-="'/])www.([a-z0-9-]+).([{$validChars}]+ )/ei",
- "/(^|[^]_a-z0-9-="'/])ftp.([a-z0-9-]+).([{$validChars}]+ )/ei",
- "/(^|[^]_a-z0-9-="'/:.])([a-z0-9-_.]+?)@([{$validChars }]+)/ei");
- $replacements = array(
- "'\1\2://'.Input::truncate( '\3' ).''",
- "'\1'.Input::truncate( 'www.\2.\3' ).''",
- " '\1'.Input::truncate( ' ftp.\2. \3' ).''",
- "'\1 '.Input::truncate( '\2@\3' ).''");
- return preg_replace($patterns, $replacements, $string);
- }
-
- /**
- * 取得客戶瀏覽器
- * @return string
- */
- function browser_info() {
- $browser = "";
- $browserver = "";
- $Browsers = array("Lynx", "MOSAIC", "AOL", "Opera ", "JAVA", "MacWeb", "WebExplorer", "OmniWeb");
- $Agent = $_SERVER["HTTP_USER_AGENT"]; //瀏覽器的全域變數
- for ($i = 0; $i if (strpos($Agent, $Browsers[$i])) {
- $browser = $Browsers[$i] ;
- $browserver = "" ;
- }
- }
- if (ereg("Mozilla", $Agent) && ereg("MSIE", $Agent)) {
- $temp = Explode("(", $Agent) ;
- $Part = $temp[1];
- $temp =explode(";", $Part);
- $Part = $temp[1];
- $temp =explode(" ", $Part);
- $browserver = $temp[2];
- //$browserver =preg_replace("/([d.]+)/"," 1",$browserver);
- $browserver = "IE" . $browserver;
- $browser = "IE";
- }
- if (ereg("Mozilla", $Agent) && !ereg("MSIE", $Agent)) {
- $temp = explode("(", $Agent);
- $Part = $temp[0];
- $temp =explode("/", $Part);
- $browserver = $temp[1];
- $temp =explode(" ", $browserver);
- $browserver = $temp[0];
- $browserver = preg_replace("/([d.]+)/", "1" , $browserver);
- $browser = " $browserver";
- $browser = "Netscape Navigator";
- }
-
- if (ereg("Mozilla", $Agent) && ereg ("Opera", $Agent)) {
- $temp =explode("(", $Agent);
- $Part = $temp[1];
- $temp =explode(")", $Part);
- $browserver = $temp[1];
- $temp =explode(" ", $browserver);
- $browserver = $temp[2];
- $browserver = preg_replace ("/([d.]+)/", "1", $browserver);
- $browser = " $browserver";
- $browser = "Opera";
- }
- / /狐狐瀏覽器
- if (ereg("Mozilla", $Agent) && ereg("Firefox", $Agent)) {
- $temp =explode("(", $Agent);
- $部分= $temp[1];
- $temp = 爆炸(")", $Part);
- $browserver = $temp[1];
- $temp = 爆炸(" ", $browserver ) ;
- $browserver = $temp[2];
- $browser = "火狐";
- }
- //Google瀏覽器
- if (ereg("Mozilla", $Agent) && ereg("Chrome", $Agent)) {
- $temp = 爆炸("(", $Agent);
- $temp = 爆炸(" ", $temp[2]);
- $ browserver = $temp['3']; //如果以後google升級不變位置的話就是它了
- $browser = "Google";
- }
- //360安全瀏覽器
- if (ereg("Mozilla", $Agent) && ereg("360SE", $Agent)) {
- //因為360瀏覽器,沒有版本…
- $browser = $browser = "360安全衛士";
- }
- if ($browser != "") {
- //$browseinfo = $browser.$browser;
- $ $ browserinfo = $browserver;
- } else {
- $browseinfo = "未知";
- }
- return $browseinfo;
- }
-
- /**
- * 傳回時間格式
- * @name:prepareDate
- * @desc:為特定資料庫類型準備正確格式的日期
- * 給定UNIX時間戳
- * @param:$timestamp : UNIX 時間戳
- * @param: $fieldType: 用於格式化日期的欄位類型
- * (在MySQL 中,有DATE、TIME、YEAR 和DATETIME)
- *
- 函數prepareDate($timestamp, $fieldType = 'DATETIME') {
- $date = '';
- if (!$timestamp === false && $timestamp > 0) {
- switch ( $fieldType) {
- case '日期' :
- $date = date('Y-m-d', $timestamp);
- 規則;
- case '時間' :
- $date = 日期('H:i:s', $timestamp);
- 中斷;
- case 'YEAR' :
- $date = date('Y', $timestamp);
- 中斷;
- 默認:
- $date = date('Y-m-d H:i:s', $timestamp);
- break;
- }
- }
- return $date;
- }
-
-
- /**
- * 適應多維數組的遞歸,並將其中重複的值去掉後回傳
- * @param array $array
- * @return array
- */
- function super_unique($array) {
- $result = array_map("unserialize", array_unique(array_map("serialize", $array)) ;
-
- foreach ($result as $key => $value) {
- if (is_array($value)) {
- $result[$key] = super_unique($value);
- }
- }
-
- 回傳$結果;
- }
-
- /**
- * 若數值不符合2位,自動補零
- * @param int $num
- * @return int
- */
- function fullzero($num){
- if(strlen($num)!=2){
- return '0' .$num;
- }else{
- return $num;
- }
- }
-
- //回上一個url
- function get_visit_url(){
- return $> return $ _SERVER['HTTP_REFERER'];
- }
- ?>
複製程式碼
|