分享21個常用的PHP函數程式碼段
- 1. PHP可閱讀隨機字串
-
- 此程式碼將建立一個可閱讀的字串,使其更接近字典中的單字,實用且具有密碼驗證功能。
-
- /**************
- *@length –隨機字串的長度(必須是 2 的倍數)
- **************/
- function readable_random_string($length = 6){
- $conso=array(“b”,”c”,”d”,”f”, ”g”,”h”,”j”,”k”,”l”,
- “m”,”n”,”p”,”r”,”s”,”t”,”v” ,”w”,”x”,”y”,”z”);
- $vocal=array(“a”,”e”,”i”,”o”,”u”);
- $password=”";
- srand ((double)microtime()*1000000);
- $max = $length/2;
- for($i=1; $i{
- $password.=$conso[rand(0,19)];
- $password.=$vocal[rand(0,4)];
- }
- return $password;
- }
-
- 2. PHP產生一個隨機字串
-
- 如果不需要可閱讀的字串,使用此函數替代,即可建立一個隨機字串,作為用戶的隨機密碼等。
-
- /************
- *@l – 隨機字串的長度
- */
- function generate_rand($l){
- $c= “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345679XYZabcdefghijklmnopqrstuvwxyz012345679XYZabc 🎜>for($i=0; $i$rand.= $c[rand()%strlen($c)];
- }
- return $rand ;
- }
-
- 3. PHP編碼電子郵件地址
-
- 使用此程式碼,可以將任何電子郵件地址編碼為html 字元實體,以防止被垃圾郵件程式收集。
-
- function encode_email($email='info@domain.com', $linkText='Contact Us', $attrs ='class=”emailencoder」' )
- {
- // remplazar aroba y puntos
- $email = str_replace('@', '@', $email);
- $email = str_replace('.', '.', $email);
- $email = str_split( $email, 5);
-
- $linkText = str_replace('@', '@', $linkText);
- $linkText = str_replace('.', '.', $linkText);
- $linkText = str_split($linkText, 5);
-
- $part1 = '$part2 = 'ilto:';
- $part3 = '” '. $attrs .' >';
- $part4 = '';
-
- $encoded = '';
-
- return $encoded;
- }
-
- 4. PHP驗證郵件地址
-
- 電子郵件驗證也許是中最常用的網頁表單驗證,此程式碼除了驗證電子郵件地址,也可以選擇檢查郵件網域所屬DNS 中的MX 記錄,使郵件驗證功能更加強大。 ($email, $test_mx = false)
- {
- if(eregi(“^([_a-z0-9-]+)(.[_a-z0-9-]+)*@([a -z0-9-]+)(.[a-z0-9-]+)*(.[a-z]{2,4})$”, $email))
- if($test_mx)
- {
- list($username, $domain) = split(“@”, $email);
- return getmxrr($domain, $mxrecords);
- }
- else
- return true;
- else
- return false;
- }
-
- 5. PHP列出目錄內容
-
- function list_files($dir)
- {
- if(is_dir( $dir))
- {
- if($handle = opendir($dir))
- {
- while(($file = readdir($handle)) !== false)
- {
- if($file != “.” && $file != “..” && $file != “Thumbs.db”)
- {
- echo ''.$file.'
- '.”n”;
- }
- }
- closedir($handle);
- }
- }
- }
-
- 6. PHP銷毀目錄
-
- 刪除一個目錄,包括它的內容。
-
- /*****
- *@dir – 要銷毀的目錄
- *@virtual[可選]- 是否為虛擬目錄
- */
- function destroyDir($dir, $virtual = false)
- {
- $ds = DIRECTORY_SEPARATOR;
- {
- $ds = DIRECTORY_SEPARATOR;
- $dir = $virtual path ($dir) : $dir;
- $dir = substr($dir, -1) == $ds ? substr($dir, 0, -1) : $dir;
- if (is_dir($dir ) && $handle = opendir($dir))
- {
- while ($file = readdir($handle))
- {
- if ($file == '.' || $file = = '..')
- {
- continue;
- }
- elseif (is_dir($dir.$ds.$file))
- {
- destroyDir($dir.$ds .$file);
- }
- else
- {
- unlink($dir.$ds.$file);
- }
- }
- closedir($handle);
- rmdir($dir);
- return true;
- }
- else
- {
- return false;
- }
- }
- >return false;
- }
- }
- >>🎜>7
- 與大多數流行的Web 服務如twitter 透過開放API 來提供資料一樣,它總是能夠知道如何解析API 資料的各種傳送格式,包括JSON,XML 等等。
-
- $json_string='{“id”:1,”name”:”foo”,”email”:”foo@foobar.com”,”interest”:[”wordpress”,”php”] } ';
- $obj=json_decode($json_string);
- echo $obj->name; //印出foo
- echo $obj->interest[1]; //印出php
-
- 8. PHP解析XML資料
-
- //xml字串
- $xml_string=”
-
-
- Foo
- foo@bar.com
-
- Foo
- foo@bar.com
-
-
- Foobar
- foobar@foo.com
-
- 」;
-
- //使用simplexml 載入xml 字串
- $xml = simplexml_load_string($xml_string); 🎜>//循環通過user的各個節點
- foreach ($xml->user as $user)
- {
- //存取屬性
- echo $user['id'], ' ';
- //子節點透過->存取運算子
- 回顯$使用者->姓名,'';
- 回顯$使用者->電子郵件,'
- ';
- }
-
- 9. PHP建立日誌縮寫
-
- 建立使用者友善的日誌縮寫。
-
- function create_slug($string){
- $slug=preg_replace('/[^A-Za- z0-9-]+/', '-', $string);
- 返回$slug;
- }
-
- 10. PHP取得客戶端真實IP位址
-
- 函數將取得使用者的真實IP位址,改為他使用代理伺服器。
-
- function getRealIpAddr()
- {
- if (!emptyempty ($_SERVER['HTTP_CLIENT_IP']))
- {
- $ip=$_SERVER]['IPTP_CLI] 🎜>}
- elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))
- //檢查ip 是否從代理傳遞
- {
- $ip=$_SERVER['HTTP_X_FORD]; 🎜>}
- else
- {
- $ip=$_SERVER[ 'REMOTE_ADDR'];
- }
- 回傳$ip;
- }
-
- 111. PHP文件下載
-
- 提供使用者足夠的文件下載功能。
-
- /********************
- *@file – 檔案路徑
- */
- function force_download($file)
- {
- if ((isset($file))&&(file_exists($file))) {
- header(“內容長度:”.filesize($file));
- header('內容類型:應用程式/octet-stream');
- header('Content-Disposition:attachment; filename=” ' . $file . '”');
- readfile(“$file”);
- } else {
- 回顯「未選取檔案」;
- }
- }
-
- 12. PHP建立標籤雲
-
- function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 )
- {
- $minimumCount = min( array_values( $ ) );
- $maximumCount = max( array_values( $data ) );
- $spread = $maximumCount – $minimumCount;
- $cloudHTML = 」;
- $cloudTags = array(); >
- $spread == 0 && $spread = 1;
-
- foreach( $data as $tag => $count )
- {
- $size = $minFontSize + ( $count – $minimumCount )
- * ( $maxFontSize – $minFontSize ) / $spread;
- $cloudTags[] = '. '” href=”#” title=”” 。 $tag .
- ‘’ 回傳了 ‘ 的計數。 $計數。 ''>'
- 。 htmlspecialchars( stripslashes( $tag ) ) 。 '';
- }
-
- 返回 join(“n”, $cloudTags ) 。 「n」;
- }
- /************************
- **** 範例用法 ***/
- $arr = Array('Actionscript' => 35, 'Adobe' => 22, 'Array' => 44 , '背景' => 43,
- '模糊' => 18, '畫布' => 15, '調色板' => 11 ; 42,
- '分隔符號'=>13,'深度'=>34 ,'編碼'=>12,
- '提取' => 28,'過濾器' => 42);
- echo getCloud($arr, 12, 36);
-
- 13. PHP尋找兩個字串的相似性
-
- PHP提供了一個極少使用的similar_text函數,但這個函數非常有用,用於比較兩個字串並傳回相似的百分比。
-
- similar_text($string1, $string2, $percent);
- //$percent 將具有相似度百分比
-
- 14。 PHP 在應用程式中使用 Gravatar 通用頭像
-
- 隨著 WordPress 日益普及,Gravatar 也逐漸流行。由於 Gravatar 提供了易於使用的 API,將其納入應用程式也變得十分方便。
-
- /******************
- *@email – 顯示頭像的電子郵件地址
- *@size – 頭像大小
- *@default – 預設頭像的URL使用
- *@ rating – Gravatar 的評分(G, PG, R, X)
- */
- function show_gravatar($email, $size, $default, $ rating)
- {
- echo ''&default='.$default.' &size ='.$size.'&Rating='.$Rating.'" 寬度="'.$size.'px"
- 高度="'.$size.'px" />';
- }
-
- 15。字串。
-
- // Chirp Internet 的原始 PHP 程式碼:www.chirp.com.au
- // 請透過包含此標頭來確認此程式碼的使用。
- function myTruncate($string, $limit, $break=”.”, $pad=”...”) {
- // 如果字串短於$limit,則不做任何更改
- if(strlen($string) return $string;
-
- // $limit 與字串結尾之間是否存在$break?
- if(false !== ($breakpoint = strpos($string, $break, $limit) )) {
- if($breakpoint $string = substr($string, 0, $breakpoint) 。 $pad;
- }
- }
- return $string;
- }
- /***** 例 ****/
- $short_string=myTruncate($long_string, 100, ' ');
-
- 16。 PHP檔案Zip 壓縮
-
- /* 建立一個壓縮的zip 檔案*/
- function create_zip($files = array(),$destination = ”,$overwrite = false) {
- //如果zip 檔案已存在且覆寫為false,回傳false
- if(file_exists($destination) && !$overwrite) { return false; }
- //vars
- $valid_files = array();
- //如果檔案傳入...
- if(is_array($files)) {
- //循環遍歷每個檔案
- foreach($files as $file) {
- //確保文件存在
- if(file_exists($file)) {
- $valid_files[] = $file;
- }
- }
- }
- //如果我們有好的檔案…
- if(count($valid_files)) {
- //建立檔案
- $zip = new ZipArchive();
- if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
- return false;
- }
- //新增檔案
- foreach($valid_files as $file) {
- $zip->addFile($ file,$file);
- }
- //debug
- //echo 'zip 檔案包含',$zip->numFiles,' 狀態為',$zip->status;
-
- //關閉zip — 完成!
- {
- return false;
- }
- }
- /***** 用法範例 ***/
- $files=array('file1.jpg', 'file2.jpg', ' file3.gif');
- create_zip($files, 'myzipfile. zip', true);
-
- 17. PHP解壓縮Zip檔
-
- /**********************
- *@file – zip 檔案的路徑
- *@destination – 解壓縮檔案的目標目錄
- */
- function unzip_file($file, $destination){
- //建立物件
- $zip = new ZipArchive() ;
- // 開啟檔案
- if ($zip->open($ file) !== TRUE) {
- die ('無法開啟檔案');
- }
- //將內容提取到目標目錄
- $zip->extractTo($destination);
- //關閉存檔
- $zip->close();
- echo '存檔提取到目錄';
- }
-
- 18。 PHP為URL位址預設http字串
-
- 有時需要接受一些表單中的網址輸入,但使用者很少添加http://字段,此程式碼將為網址添加該字段。
-
- if (!preg_match(“/^(http|ftp):/”, $_POST['url'])) {
- $_POST['url'] = 'http://' .$_POST[' url'];
- }
-
- 19. PHP 將網址字串轉換成超級連結
-
- 此函數將URL 和電子郵件地址字串轉換為可點擊的超連結。
-
- function makeClickableLinks($text) {
- $text = eregi_replace('(((f|ht)lianqiangjavatp://)[-a-zA-Z0-9@:%_+.~ #?&//=]+)',
- '1 ', $text);
- $text = eregi_replace('([[:space:]()[{}])(www.[- a-zA-Z0-9@:%_+.~#? &//=]+)',
- '12', $text);
- $text = eregi_replace('([_.0 -9a-z-]+@([0-9a-z]) [0-9a-z-]+.)+[a-z]{2,3})',
- '1', $text) ;
-
- 回傳$text;
- }
-
- 20。 PHP 調整圖片
-
- 建立映像需要很多時間,此程式碼將有助於了解所需大小的邏輯。
-
- /**********************
- *@filename – 圖片路徑
- *@tmpname – 縮圖的暫時路徑
- *@xmax – 最大值寬度
- *@ymax – 最大高度
- */
- function resize_image( $filename, $tmpname, $xmax, $ymax)
- {
- $ext =explode(“.”, $filename );
- $ext = $ext[count($ext)-1];
-
- if($ext == “jpg” || $ext == “jpeg”)
- $im = imagecreatefromjpeg($tmpname);
- elseif($ext == “png”)
- $im = imagecreatefrompng($tmpname);
- elseif($ext == “gif”)
- $im🎜>elseif($ext == “gif”)
- $im🎜>$im = imagecreatefromgif($tmpname);
-
- $x = imagesx($im );
- $y = imagesy($im);
-
- if($x return $im;
-
- if($x >= $y) {
- $newx = $xmax;
- $newy = $newx * $y / $x;
- }
- else {
- $newy = $ymax;
- $newx = $x / $y * $newy;
- }
-
- $im2 = imagecreatetruecolorcolor ($newx, $newy);
- imagecopyresized($im2, $ im, 0, 0, 0, 0, 樓層($newx), 樓層($newy), $x, $y);
- 返回$im2;
- }
-
- 21. PHP偵測ajax請求
-
- 大部分的JavaScript框架如jquery,Mootools等,在發出Ajax請求時,都會發送額外的HTTP_X_REQUESTED_WITHTHTHi ,當一個ajax請求時,你可以在伺服器端監聽測到Ajax 請求。
-
- if(!emptyempty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
- /如果是AJV🎜> }其他{
- //其他
- }
-
-
-
- 複製程式碼
|