Time of Update: 2017-02-27
原理:1.將原網址做crc32校正,得到校正碼。2.使用sprintf('%u') 將校正碼轉為無符號數字。3.對無符號數字進行求餘62操作(大小寫字母+數字等於62位),得到餘數後映射到62個字元中,將映射後的字元儲存。(例如餘數是10,則映射的字元是A,0-9對應0-9,10-35對應A-Z,36-61對應a-z)4.迴圈操作,直到數值為0。5.將所有映射後的字元拼接,就是短網址後的code。代碼如下:/** 產生短網址 * @param String $url 原網址 *
Time of Update: 2017-02-27
在PHP中數組分為兩類: 數字索引數組和關聯陣列。其中數字索引數組和C語言中的數組一樣,下標是為0,1,2…而關聯陣列下標可能是任意類型,與其它語言中的hash,map等結構相似。下面介紹PHP中遍曆關聯陣列的三種方法:foreach<?php $sports = array( 'football' => 'good', 'swimming' => 'very well', 'running' => 'not good'
Time of Update: 2017-02-27
你是否在程式開發的過程中遇到以下的情況:當你花了很長的時間開發一個應用後,你認為應該是大功告成了,可惜在調試的時候,老是不斷的發現bug,而且最可怕的是,這些bug是重複出現的,你可能發現這些bug之間會有關聯,但卻老是找不到問題的所在。當你遇到以上這些令你沮喪的情況時,你一定會想能有什麼更好的辦法去解決呢?辦法當然是有的!這就是使用單元測試。單元測試不但可以在一定程度上解決上述頭疼的問題,而且能讓代碼變的容易維護,還可以能讓你更多地對代碼進行重構。一旦你編寫好單元測試用例,當你需要修改你的代碼
Time of Update: 2017-02-27
今天在論壇裡看到有個朋友的需求,見證csdn的版主都不愧是大牛的角色存在啊!!!儲存起來,方便以後需要的時候使用。字串為:1 = 光電滑鼠 2 = 機械滑鼠 3 = 沒有滑鼠 1.1 = 黑色光電滑鼠 1.2 = 紅色光電滑鼠 1.2.1 = 藍芽紅色光電滑鼠版主解答為:<?php$s =<<< TXT 1 = 光電滑鼠 2 = 機械滑鼠 3 = 沒有滑鼠 1.1 = 黑色光電滑鼠 1.2 = 紅色光電滑鼠 1.2.1 = 藍芽紅色光電滑鼠
Time of Update: 2017-02-27
首先看看效果圖:1.資料設定檔 db.php<?php return array( array( 'one' => '關於我們', 'two' => array( array( 'three_tit' => '公司介紹', 'three_cont' => array(
Time of Update: 2017-02-27
<?php //計算抽獎的機率 function get_rand($proArr) { $result = ''; $proSum = array_sum($proArr); foreach ($proArr as $key => $proCur) { $randNum = mt_rand(1, $proSum);
Time of Update: 2017-02-27
(deque,全名double-ended queue)是一種具有隊列和棧的性質的資料結構。雙向隊列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。在實際使用中,還可以有輸出受限的雙向隊列(即一個端點允許插入和刪除,另一個端點只允許插入的雙向隊列)和輸入受限的雙向隊列(即一個端點允許插入和刪除,另一個端點只允許刪除的雙向隊列)。而如果限定雙向隊列從某個端點插入的元素只能從該端點刪除,則該雙向隊列就蛻變為兩個棧底相鄰的棧了。DEQue.class.php<?php /**
Time of Update: 2017-02-27
heredoc 結構heredoc 句法結構:<<<。在該運算子之後要提供一個標識符,然後換行。接下來是字串本身,最後要用前面定義的標識符作為結束標誌。<?php $content = <<<FDIPZONE <html> <head> <title>test</title> </head> <body> <p><img
Time of Update: 2017-02-27
php 匯出CSV抽象類別,根據總記錄數與每批次記錄數,計算總批次,迴圈匯出。避免記憶體不足的問題。ExportCSV.class.php<?php /** php Export CSV abstract class,根據總記錄數與每批次記錄數,計算總批次,迴圈匯出。 * Date: 2014-05-16 * Author: fdipzone * Ver: 1.0 * * Func: * public setPageSize
Time of Update: 2017-02-27
php zip 檔案比較類,比較兩個zip檔案的內容,返回新增,刪除,及相同的檔案清單。暫時只支援單層。需求:上傳一個zip檔案,zip內有很多圖片檔案。需要對圖片檔案進行一系列很耗時的處理。當使用者再更新zip檔案時。判斷zip內檔案是否一致,只處理不同的檔案。這樣可以節省資源與時間,因此需要編寫一個能夠比較zip內檔案的類。ZipCompare.class.php<?php /** Zip Compare class
Time of Update: 2017-02-27
User Language Class 擷取/設定使用者訪問的頁面語言,如果使用者沒有設定訪問語言,則讀取Accept-Language。根據使用者選擇的語言顯示對應的頁面(英文,簡體中文,繁體中文)UserLang.class.php<?php /** User Language Class 擷取/設定使用者訪問的頁面語言,如果使用者沒有設定訪問語言,則讀取Accept-Language * Date: 2014-05-26 * Author: fdipzone *
Time of Update: 2017-02-27
例如:檔案A 的路徑是 /home/web/lib/img/cache.php檔案B的路徑是 /home/web/api/img/show.php那麼,檔案A相對於檔案B的路徑是 ../../lib/img/cache.php,即檔案B 訪問 檔案A的相對路徑。function getRelativePath<?php /** 計算path1 相對於 path2 的路徑,即在path2引用paht1的相對路徑 * @param String $path1 * @param
Time of Update: 2017-02-27
php 的json_encode能把數群組轉換為json格式的字串。字串沒有縮排,中文會轉為unicode編碼,例如\u975a\u4ed4。人閱讀比較困難。現在這個方法在json_encode的基礎上再進行一次美化處理。使人能方便閱讀內容。1. 使用 json_encode 輸出<?php header('content-type:application/json;charset=utf8'); $arr = array( 'status'
Time of Update: 2017-02-27
先看一個例子,功能:1.點擊頁面中一個按鈕,ajax執行php,php中用session記錄執行到哪一步。2.使用ajax輪詢另一個php,擷取session中資料,輸出執行到哪一步。session.html 調用php執行,並輸出執行到第幾步<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Time of Update: 2017-02-27
水仙花數是指一個n位元(n>=3),它每個位上數位n次冪之和等於它本身,n為它的位元。(例如:1^3+5^3+3^3 = 153)水仙花數又稱阿姆斯特朗數。三位的水仙花數有4個:153,370,371,407四位的水仙花數有3個:1634,8208,9474五位的水仙花數有3個:54748,92727,93084六位的水仙花數有1個:548834七位的水仙花數有4個:1741725,4210818,9800817,9926315八位的水仙花數有3個:24678050,24678051,88
Time of Update: 2017-02-27
社會安全號碼碼的結構社會安全號碼碼是特徵組合碼,由17位元字本體碼和一位校正碼組成。排列順序從左至右依此為:六位元字地址碼,八位元字出生日期碼,三位元字順序碼和一位元字校正碼。地址碼(前六位元)表示編碼對象常住戶口所在縣(市、旗、區)的行政區劃代碼,按GB/T2260的規定執行。出生日期碼(第七位至十四位)表示編碼對象出生的年、月、日,按GB/T7408的規定執行,年、月、日代碼之間不用分隔字元。順序碼(第十五位至十七位)表示在同一地址碼所標識的地區範圍,對同年、同月、同日出生的人編定的順序號,
Time of Update: 2017-02-27
php unserialize 返回false的解決方案php 提供serialize(序列化) 與unserialize(還原序列化)方法。使用serialize序列化後,再使用unserialize還原序列化就可以擷取原來的資料。<?php $arr = array( 'name' => 'fdipzone', 'gender' => 'male'); $str = serialize($arr); //序列化 echo
Time of Update: 2017-02-27
<?php /** Captcha 驗證碼類 * Date: 2011-02-19 * Author: fdipzone */ class Captcha{ //class start private $sname = ''; public function __construct($sname=''){ // $sname captcha session name $this->sname =
Time of Update: 2017-02-27
PHP接收二進位流並組建檔案的代碼<?php /** 二進位流組建檔案 * $_POST 無法解釋二進位流,需要用到 $GLOBALS['HTTP_RAW_POST_DATA'] 或 php://input * $GLOBALS['HTTP_RAW_POST_DATA'] 和 php://input 都不能用於 enctype=multipart/form-data * @param String $file 要產生的檔案路徑 *
Time of Update: 2017-02-27
DataReturn.class.php<?php /** 返回資料格式化類* Date: 2011-08-15 * Author: fdipzone */ class DataReturn{ // class start private $type; private $xmlroot; private $callback; private $returnData; public