作者:windy2000 時間: 2003-10-06 文檔類型:原創(chuàng) 來自:藍色理想
第 1 頁 PHP源代碼集錦-File System Object 第 2 頁 PHP源代碼集錦-Some Function 第 3 頁 PHP源代碼集錦-MySQL Manager 第 4 頁 PHP源代碼集錦-Html Transfer Code
Some Function:<?php /* 函數(shù)名:GetPara 作 用:取得系統(tǒng)變量 簡 介:習慣早期版本的朋友可能會習慣于直接通過 $para 來調用session, get, post, cookie 等類的變量,但是這在安全上會造成一定的隱患,也就是說可以通過 get 模式來欺騙系統(tǒng),所以在 php 4.1.0 以后的版本中,registor_global 的默認值變成了 off ,也就是你不許通過系統(tǒng)數(shù)組來分類調用相關變量,但這也在一定程度上給習慣了原來模式的用戶帶來了不便,也使得一些早期的程序必須經(jīng)過修改才可以在新的環(huán)境下運行,本函數(shù)基本上可以解決掉以上問題,同時通過分類激活避免用 get 偽裝 post 等變量的問題。 效 果:是可以直接通過 $para 來調用相關變量(相當于 registor_global = on),好處是可以分類激活,避免通過 get 偽裝 post 等信息! 方 法:模式一:GetPara("get","my_get_para") 取得名為 my_get_para 的 get 變量值 模式一:GetPara("post") 聲明所有 post 變量為可(像老版本php一樣)直接調用的變量 其 他:GetPara("file") ; GetPara("env") ; GetPara("server") 等... */ function GetPara($type = "get", $para = "") { //Coded By Windy_sk 20030529 v1.5 $type = "_".strtoupper($type); if(phpversion() < "4.1.0") { if($type = "_FILES") { $type = "HTTP_POST".$type; } elseif($type = "_REQUEST") { return $para?false:""; } else { $type = "HTTP".$type."_VARS"; } @eval("global \${$type};"); } eval("\$flag = isset(\${$type});"); if($flag) { eval("\$type = \${$type};"); } else { return $para?false:""; } if($para) { return isset($type[$para])?$type[$para]:""; } while(list($key, $value) = each($type)) { global $$key; $$key = $value; } return true; } /* 函數(shù)名:substrPro 作 用:取得字符串的指定部分,且不會出現(xiàn)將全角字符截斷的現(xiàn)象 簡 介:本函數(shù)是 substr 針對全角字符的擴展,避免截斷全角字符,同時如果 $mode = true 的話,會將全角字符看作是一個字符! 方 法:substrPro("一1二三四4五5六七八8九十0", 2, 6) -> "1二三四" substrPro("一1二三四4五5六七八8九十0", 2, 6, true) -> "1二三四4五" 注:暫不支持參數(shù)為負值 */ function substrPro($Modi_Str, $start, $length, $mode = false){ //Coded By Windy_sk 20020603 v2.0 $n = 0; for($i=0;$i<$start;$i++){ if(ord(substr($Modi_Str,$i,1))>0xa0){ if($mode){ $start++; $i++; } $n++; } } if(!$mode)$start = $start + $n%2; $The_length = $start+$length; for($i=$start;$i<$The_length;$i++){ if(ord(substr($Modi_Str,$i,1))>0xa0){ $The_Str.=substr($Modi_Str,$i,2); $i++; if($mode) $The_length++; }else{ $The_Str.=substr($Modi_Str,$i,1); } } return $The_Str; } /* 以下兩個函數(shù)為取得程序的執(zhí)行時間,并可定制精確度(最多精確到 1E-10 s) */ function getmicrotime() { if(function_exists("microtime")) { list($usec, $sec) = explode(" ",microtime()); return $usec + $sec; } else { return time(); } } function gettimediff($time_start, $decimal = 3) { $time_end = getmicrotime(); $time = (string)($time_end - $time_start); $time = preg_replace("/^([\d]+.[\d]{".$decimal."})[\d]*$/","\\1",$time); return $time; } /* 函數(shù)名:ob_handle 作 用:通過ob_start("ob_handle") 來處理緩存數(shù)據(jù),并在 flush 前對其進行加工處理。 方 法:先設置 $ob_function 為函數(shù)名列表(以“;”作間隔,需均為字符串處理函數(shù),且便兩個數(shù)可為一,可以使自定義變量),再設置 ob_start("ob_handle") 調用本函數(shù)進行緩存控制,最后 ob_end_flush() 輸出緩存。(注: $ob_function 在 ob_end_flush() 之前設置均有效。 */ $ob_function = "htmlspecialchars;trim"; function ob_handle ($content) { //Coded By Windy_sk 20030510 v1.0 global $ob_function, $cache_file; $f_list = split(";", $ob_function); for($i=0; $i<count($f_list); $i++) { $temp = trim($f_list[$i]); if(function_exists($temp)) $content = $temp($content); } if(phpversion() > "4.0.6") $content = ob_gzhandler($content, 1); return $content; } /* 函數(shù)名:RndKey 作 用:生成規(guī)定長度的隨機字串 方 法:RndKey(8) -> "1d@5cDO(" */ function RndKey($lng){ $char_list = array(); $char_list[] = "1234567890"; $char_list[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $char_list[] = "abcdefghijklmnopqrstuvwxyz"; $char_list[] = "!@^()_:+\-"; $char_length = count($char_list); $Rnd_Key = ""; for($i=1; $i<=$lng; $i++){ $Rnd_Str = $char_list[rand(1,$char_length) - 1]; $Rnd_Key .= substr($Rnd_Str, rand(0,strlen($Rnd_Str)-1), 1); } return($Rnd_Key); } /* 函數(shù)名:cut_words 作 用:將連續(xù)的文本按照全角字符和半角單詞拆分 */ function cut_words($str) { //Coded By Windy_sk 20020805 v1.0 $str = str_replace("\r\n","\n",$str) . " "; preg_match_all("/[\xa0-\xff]?./", $str, $arr1); $arr1 = $arr1[0]; $arr2 = array(); $n = 0; for($i=0; $i<count($arr1); $i++) { if(ord($arr1[$i])>=0xa0) { if(!empty($arr2[$n])) $n++; $arr2[$n++] = $arr1[$i]; } elseif(preg_match("/\s/m", $arr1[$i])) { $arr2[++$n] = $arr1[$i]; } else { $arr2[$n] .= $arr1[$i]; } } return join("", $arr2); } ?> [Ctrl+A 全部選擇 然后拷貝]
出處:藍色理想 責任編輯:cjj
上一頁 PHP源代碼集錦-File System Object 下一頁 PHP源代碼集錦-MySQL Manager
◎進入論壇網(wǎng)絡編程版塊參加討論
藍色理想版權申明:除部分特別聲明不要轉載,或者授權我站獨家播發(fā)的文章外,大家可以自由轉載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權歸我站和作者共有。
轉載要求:轉載之圖片、文件,鏈接請不要盜鏈到本站,且不準打上各自站點的水印,亦不能抹去我站點水印。
特別注意:本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯(lián)系,版權歸原作者所有,文章若有侵犯作者版權,請與我們聯(lián)系,我們將立即刪除修改。