【轉】超實用PHP函數總結整理,實用php函數總結_PHP教程

來源:互聯網
上載者:User

【轉】超實用PHP函數總結整理,實用php函數總結


原文連結:http://www.codeceo.com/article/php-function.html

1、PHP加密解密

PHP加密和解密函數可以用來加密一些有用的字串存放在資料庫裡,並且通過可逆解密字串,該函數使用了base64和MD5加密和解密。

function encryptDecrypt($key, $string, $decrypt){     if($decrypt){         $decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "12");         return $decrypted;     }else{         $encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));         return $encrypted;     } }

使用方法如下:

//以下是將字串“Helloweba歡迎您”分別加密和解密 //加密: echo encryptDecrypt('password', 'Helloweba歡迎您',0); //解密: echo encryptDecrypt('password', 'z0JAx4qMwcF+db5TNbp/xwdUM84snRsXvvpXuaCa4Bk=',1);

2、PHP產生隨機字串

當我們需要產生一個隨機名字,臨時密碼等字串時可以用到下面的函數:

function generateRandomString($length = 10) {     $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';     $randomString = '';     for ($i = 0; $i < $length; $i++) {         $randomString .= $characters[rand(0, strlen($characters) - 1)];     }     return $randomString; }

使用方法如下:

echo generateRandomString(20);

3、PHP擷取副檔名(尾碼)

以下函數可以快速擷取檔案的副檔名即尾碼。

function getExtension($filename){   $myext = substr($filename, strrpos($filename, '.'));   return str_replace('.','',$myext); }

使用方法如下:

$filename = '我的文件.doc'; echo getExtension($filename);

4、PHP擷取檔案大小並格式化

以下使用的函數可以擷取檔案的大小,並且轉換成便於閱讀的KB,MB等格式。

function formatSize($size) {     $sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");     if ($size == 0) {          return('n/a');      } else {       return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]);      } }

使用方法如下:

$thefile = filesize('test_file.mp3'); echo formatSize($thefile);

5、PHP替換標籤字元

有時我們需要將字串、模板標籤替換成指定的內容,可以用到下面的函數:

function stringParser($string,$replacer){     $result = str_replace(array_keys($replacer), array_values($replacer),$string);     return $result; }

使用方法如下:

$string = 'The {b}anchor text{/b} is the {b}actual word{/b} or words used {br}to describe the link {br}itself'; $replace_array = array('{b}' => '','{/b}' => '','{br}' => '
'); echo stringParser($string,$replace_array);

6、PHP列出目錄下的檔案名稱

如果你想列出目錄下的所有檔案,使用以下代碼即可:

function listDirFiles($DirPath){     if($dir = opendir($DirPath)){          while(($file = readdir($dir))!== false){                 if(!is_dir($DirPath.$file))                 {                     echo "filename: $file
"; } } } }

使用方法如下:

listDirFiles('home/some_folder/');

7、PHP擷取當前頁面URL

以下函數可以擷取當前頁面的URL,不管是http還是https。

function curPageURL() {     $pageURL = 'http';     if (!empty($_SERVER['HTTPS'])) {$pageURL .= "s";}     $pageURL .= "://";     if ($_SERVER["SERVER_PORT"] != "80") {         $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];     } else {         $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];     }     return $pageURL; }

使用方法如下:

echo curPageURL();

8、PHP強制下載檔案

有時我們不想讓瀏覽器直接開啟檔案,如PDF檔案,而是要直接下載檔案,那麼以下函數可以強制下載檔案,函數中使用了application/octet-stream頭類型。

function download($filename){     if ((isset($filename))&&(file_exists($filename))){        header("Content-length: ".filesize($filename));        header('Content-Type: application/octet-stream');        header('Content-Disposition: attachment; filename="' . $filename . '"');        readfile("$filename");     } else {        echo "Looks like file does not exist!";     } }

使用方法如下:

download('/down/test_45f73e852.zip');

9、PHP截取字串長度

我們經常會遇到需要截取字串(含中文漢字)長度的情況,比如標題顯示不能超過多少字元,超出的長度用…表示,以下函數可以滿足你的需求。

/*  Utf-8、gb2312都支援的漢字截取函數  cut_str(字串, 截取長度, 開始長度, 編碼);  編碼預設為 utf-8  開始長度預設為 0 */ function cutStr($string, $sublen, $start = 0, $code = 'UTF-8'){     if($code == 'UTF-8'){         $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";         preg_match_all($pa, $string, $t_string);         if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";         return join('', array_slice($t_string[0], $start, $sublen));     }else{         $start = $start*2;         $sublen = $sublen*2;         $strlen = strlen($string);         $tmpstr = '';         for($i=0; $i<$strlen; $i++){             if($i>=$start && $i<($start+$sublen)){                 if(ord(substr($string, $i, 1))>129){                     $tmpstr.= substr($string, $i, 2);                 }else{                     $tmpstr.= substr($string, $i, 1);                 }             }             if(ord(substr($string, $i, 1))>129) $i++;         }         if(strlen($tmpstr)<$strlen ) $tmpstr.= "...";         return $tmpstr;     } }

使用方法如下:

$str = "jQuery外掛程式實現的載入圖片和頁面效果"; echo cutStr($str,16);

10、PHP擷取用戶端真實IP

我們經常要用資料庫記錄使用者的IP,以下代碼可以擷取用戶端真實的IP:

//擷取使用者真實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); }

使用方法如下:

echo getIp();

11、PHP防止SQL注入

我們在查詢資料庫時,出於安全考慮,需要過濾一些非法字元防止SQL惡意注入,請看一下函數:

function injCheck($sql_str) {      $check = preg_match('/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/', $sql_str);     if ($check) {         echo '非法字元!!';         exit;     } else {         return $sql_str;     } }

使用方法如下:

echo injCheck('1 or 1=1');

12、PHP頁面提示與跳轉

我們在進行表單操作時,有時為了友好需要提示使用者操作結果,並跳轉到相關頁面,請看以下函數:

function message($msgTitle,$message,$jumpUrl){     $str = '';     $str .= '';     $str .= '';     $str .= '';     $str .= '頁面提示';     $str .= '';     $str .= '';     $str .= '';     $str .= '';     $str .= '

'.$msgTitle.'

'; $str .= ''; $str .= '

'.$message.'

'; $str .= '

系統將在 使用方法如下:

message('操作提示','操作成功!','http://www.helloweba.com/');

13、PHP計算時間長度

我們在處理時間時,需要計算目前時間距離某個時間點的時間長度,如計算用戶端運行時間長度,通常用hh:mm:ss表示。

function changeTimeType($seconds) {     if ($seconds > 3600) {         $hours = intval($seconds / 3600);         $minutes = $seconds % 3600;         $time = $hours . ":" . gmstrftime('%M:%S', $minutes);     } else {         $time = gmstrftime('%H:%M:%S', $seconds);     }     return $time; }

使用方法如下:

$seconds = 3712; echo changeTimeType($seconds);

http://www.bkjia.com/PHPjc/923413.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/923413.htmlTechArticle【轉】超實用PHP函數總結整理,實用php函數總結 原文連結:http://www.codeceo.com/article/php-function.html 1、PHP加密解密 PHP加密和解密函數可以用來...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.