ゼロ パディング、中国語インターセプト、停止、HTML ジャンプ、JS ジャンプ、HTML のフィルタリング、電子メールの正当性のチェック、テキスト内のハイパーリンクをクリック可能な接続への変換、時刻形式を返すなど、一般的に使用される PHP 関数ライブラリがあります。
- //フロントエンドとバックエンドの両方で使用されるため、簡単に再利用できるようにスーパーマリオフォルダーに配置されています
- /**
- * ああ〜かわいい小数点〜 ああ〜かわいい千の桁〜
- * 4桁以上ある場合は、その前に3桁目を追加してください
- * @param int $gold
- * @return string
- */
- function showGold($gold) {
- return number_format( $gold);
- }
- /**
- * ページ圧縮出力
- */
- 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-エンコーディング') ;
- //header('Via: 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('');
- }
-
- /**
- * 模拟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
- */
- functionstriptags($value) {
- return $value = is_array($value) ? array_map('striptags', $value) :strip_tags($value);
- }
-
- /**
- * メールの有効性を確認します
- *
- * @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;
- }
- }
-
- /**
- * 安全なメールアドレス
- *
- * @param string $email
- * @param $attributes
- * @return
- * /
- functionsafe_mailto($email, $title = '', $attributes = '') {
- if (is_array($email)) {
- $tmp = $email;
- unset($email);
- extract($tmp );
- }
- $title = (文字列) $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 $x[] = "|" . ord(substr($val, $i, 1)) ;
- }
- $x[] = '"';
- }
- } else {
- for ($i = 0; $i $x[] = substr($属性, $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;
- }
- }
- /**
- +------------------------------------------------ ----------
- * テキスト内のハイパーリンクをクリック可能なリンクに変換します
- +-------------------------- --- ------------------------
- * @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< a href="ftp://ftp.\2.\3" title="ftp.\2.\3" rel="external">'.Input::truncate( 'ftp.\2.\3' ).'
'",
- "'\1'.Input::truncate( '\2 @\3' ).''");
- return preg_replace($patterns, $replacements, $string);
- }
-
- /**
- * クライアントブラウザを取得します
- * @return string
- */
- function verify_info() {
- $ブラウザ = "";
- $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);
- $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 = "不明";
- }
- return $browseinfo;
- }
-
- /**
- * 戻り時間间格式
- * @name: prepareDate
- * @desc: 特定のデータベース タイプに適切な形式で日付を準備します
- * 指定された UNIX タイムスタンプ
- * @param: $timestamp: UNIX タイムスタンプ
- * @param: $ fieldType: 日付をフォーマットするフィールドのタイプ
- * (MySQL では、DATE、TIME、YEAR、および 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);
- ブレーク;
- ケース '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);
- }
- }
-
- return $result;
- }
-
- /**
- * 値が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 $_SERVER['HTTP_REFERER'];
- }
- ?>
复制代
|