There are commonly used PHP function libraries such as zero padding, Chinese interception, halt, html jump, js jump, filtering html, checking the email is legal, converting hyperlinks in text into clickable connections, returning time format, etc.
- //Because it is used in both front and backend, it is placed in the supermario folder for easy reuse
- /**
- * Oh~ Cute decimal point~ Oh~ Cute thousand digit~
- * If there are more than 4 digits, add the third digit before it,
- * @param int $gold
- * @return string
- */
- function showGold($gold) {
- return number_format( $gold);
- }
- /**
- * Page compression output
- */
- function ob_callback($buffer) {
- header('Etag: '.md5($buffer));
- if( extension_loaded('zlib') AND strstr ($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip") ) {
- $buffer = gzencode($buffer,9);
- header('Content-Encoding: gzip');
- header('Vary: Accept-Encoding') ;
- //header('Via: www.guangxitravel.cn');
- header('Content-Length: '.strlen($buffer));
- }
- return $buffer;
- }
- /**
- * Jump to the page without prompt
- * @param string $url
- * @param string $target
- */
- function go($url='', $target='parent') {
- if ($url != "") {
- echo('');
- } else {
- echo('' );
- }
- }
-
- /**
- * Clear cache, ECHO, then DIE (hateful javascript+php... plain text output, there will always be some null characters...)
- * @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);
- }
-
- /**
- * Check the validity of email
- *
- * @param string $email
- * @return bool
- */
- function check_email($email) {
- if (preg_match("/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i", $email)) {
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * Secure email address
- *
- * @param string $email
- * @param string $title
- * @param $attributes
- * @return
- */
- function safe_mailto($email, $title = '', $attributes = '') {
- if (is_array($email)) {
- $tmp = $email;
- unset($email);
- extract($tmp);
- }
- $title = (string) $title;
-
- if ($title == "") {
- $title = $email;
- }
-
- for ($i = 0; $i < 16; $i++) {
- $x[] = substr(' }
- $x[] = '"';
- if ($attributes != '') {
- if (is_array($attributes)) {
- foreach ($attributes as $key => $val) {
- $x[] = ' ' . $key . '="';
- for ($i = 0; $i < strlen($val); $i++) {
- $x[] = "|" . ord(substr($val, $i, 1));
- }
- $x[] = '"';
- }
- } else {
- for ($i = 0; $i < strlen($attributes); $i++) {
- $x[] = substr($attributes, $i, 1);
- }
- }
- }
- $x[] = '>';
-
- $temp = array();
- for ($i = 0; $i < strlen($title); $i++) {
- $ordinal = ord($title[$i]);
- if ($ordinal < 128) {
- $x[] = "|" . $ordinal;
- } else {
- if (count($temp) == 0) {
- $count = ($ordinal < 224) ? 2 : 3;
- }
- $temp[] = $ordinal;
- if (count($temp) == $count) {
- $number = ($count == 3) ? (($temp['0'] % 16) * 4096) + (($temp['1'] % 64) * 64) + ($temp['2'] % 64) : (($temp['0'] % 32) * 64) + ($temp['1'] % 64);
- $x[] = "|" . $number;
- $count = 1;
- $temp = array();
- }
- }
- }
- $x[] = '<';
- $x[] = '/';
- $x[] = 'a';
- $x[] = '>';
-
- $x = array_reverse($x);
- ob_start();
- ?>
- // var l=new Array();
- $i = 0;
- foreach ($x as $val) {
- ?>l[]='';
-
- for (var i = l.length-1; i >= 0; i=i-1){
- if (l[i].substring(0, 1) == '|') document.write(""+unescape(l[i].substring(1))+";");
- else document.write(unescape(l[i]));}
- //]]>
- $buffer = ob_get_contents();
- ob_end_clean();
- if ($tmp == '' || $tmp == NULL) {
- return $buffer;
- } else {
- echo $buffer;
- }
- }
- /**
- +------------------------------------------------ ----------
- * Convert hyperlinks in text into clickable links
- +-------------------------- --------------------------------
- * @access public
- +---------- --------------------------------------------------
- * @ param string $text The string to be processed
- +--------------------------------------------- ------------------
- * @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);
- }
-
- /**
- * Get the client browser
- * @return string
- */
- function browse_info() {
- $browser = "";
- $browserver = "";
- $Browsers = array("Lynx", "MOSAIC", "AOL", "Opera", "JAVA", "MacWeb", "WebExplorer", "OmniWeb");
- $Agent = $_SERVER["HTTP_USER_AGENT"]; //浏览器的全局变量
- for ($i = 0; $i <= 7; $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);
- $browserver = " $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);
- $browserver = " $browserver";
- $browser = "Opera";
- }
- //火狐浏览器
- if (ereg("Mozilla", $Agent) && ereg("Firefox", $Agent)) {
- $temp = explode("(", $Agent);
- $Part = $temp[1];
- $temp = explode(")", $Part);
- $browserver = $temp[1];
- $temp = explode(" ", $browserver);
- $browserver = $temp[2];
- $browser = "火狐";
- }
- //谷歌浏览器
- if (ereg("Mozilla", $Agent) && ereg("Chrome", $Agent)) {
- $temp = explode("(", $Agent);
- $temp = explode(" ", $temp[2]);
- $browserver = $temp['3']; //如果以后google升级不变位置的话就是它了
- $browser = "谷歌";
- }
- //360safe浏览器
- if (ereg("Mozilla", $Agent) && ereg("360SE", $Agent)) {
- //因为360浏览器,没有版本……
- $browserver = $browser = "360安全卫士";
- }
- if ($browser != "") {
- //$browseinfo = $browser.$browserver;
- $browseinfo = $browserver;
- } else {
- $browseinfo = "Unknown";
- }
- return $browseinfo;
- }
- /**
- * 返回时间格式
- * @name: prepareDate
- * @desc: prepares a date in the proper format for specific database types
- * given a UNIX timestamp
- * @param: $timestamp: a UNIX timestamp
- * @param: $fieldType: the type of field to format the date for
- * (in MySQL, you have DATE, TIME, YEAR, and DATETIME)
- */
- function prepareDate($timestamp, $fieldType = 'DATETIME') {
- $date = '';
- if (!$timestamp === false && $timestamp > 0) {
- switch ($fieldType) {
- case 'DATE' :
- $date = date('Y-m-d', $timestamp);
- break;
- case 'TIME' :
- $date = date('H:i:s', $timestamp);
- break;
- case 'YEAR' :
- $date = date('Y', $timestamp);
- break;
- default :
- $date = date('Y-m-d H:i:s', $timestamp);
- break;
- }
- }
- return $date;
- }
-
-
- /**
- * Adapt to the recursion of multi-dimensional arrays and return after removing duplicate values
- * @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);
- }
- }
-
- return $result;
- }
-
- /**
- * If the value does not meet 2 digits, zeros will be added automatically
- * @param int $num
- * @return int
- */
- function fullzero($num){
- if(strlen($num)!=2){
- return '0'.$num;
- }else{
- return $num;
- }
- }
-
- //返回上一个url
- function get_visit_url(){
- return $_SERVER['HTTP_REFERER'];
- }
- ?>
复制代码
|