Time of Update: 2016-07-21
之前寫過一個加解密的文章,也能湊合著使用, 現在為了安全, 用php寫了一個triple des(3DES)的正反加解密函數. 3DES是公認的最安全的加密解密函數了,只是可惜的是php沒有提供這樣現成的函數,於是乎自己寫了一個3DES版本的方法,3DES有很多版本,該版本採用的是ECB模式,用PKCS7補碼,base64做密文,安全等級高,一般使用該函數只要修改其中的key即可.測試:echo (des3crypt(
Time of Update: 2016-07-21
在項目中,遇到一個需求,如我要截取一串字串,而又不想截取半截的單詞,看了下php手冊的這個mb_strimwidth() 函數,據說是不會打斷單詞的,可是測試沒有成功,於是乎自己寫個先,雖然有些小問題,但是勉強能用了,有時間再封裝的好點. 該函數的實現原理是利用wordwrap()打斷單詞,然後用mb_strlen()計算單詞的長度,截取到需要被截取的長度即可. 如下測試: //原字串 $str = ‘readonly this boolean attribute
Time of Update: 2016-07-21
因為在做一個項目需要篩選掉一部分產品列表中的產品,使其在列表顯示時排在最後,但是所有產品都要按照更新時間排序。研究了一下系統的資料庫結構後,決定將要排除到後面的產品加為粗體,這樣在資料庫中的“ifbold”就會被標記為1,而其他產品就預設標記為0,然後就打算使用MySQL在Order By時進行多欄位排序。Orderby的多條件分割一般使用英文逗號分割,所以我測試的SQL如下:select * from {P}_product_con where $scl order
Time of Update: 2016-07-21
現在很多PHP程式都需要ZendOptimizer環境,但是ZendOptimizer在PHP5.2之後已經被支援,那怎麼辦,Zend也不會這麼做,原來PHP5.3開始ZendOptimizer正式改為Zend Guard Loader。 Zend Guard Loader的發布,而且Zend Optimizer不會再更新,並且由於差異很大使用Zend Guard加密代碼時將提示你是否使用php5.3,如果使用5.3那麼代碼就無法在php5.2上運行。 Zend Guard
Time of Update: 2016-07-21
今天在芒果小站看到一段代碼,感覺挺不錯的,於是轉載過來。以下是原文。將字串形式的 JSON 資料格式化為縮排形式。通常使用 json_encode 轉換出來的 JSON 串沒有縮排,有這個方法就爽多了。 這裡我預設使用了 tab 縮排,如果要改成空格,替換變數 $indentStr 即可。 /** * Indents a flat JSON string to make it more human-readable. * @param string $json The original
Time of Update: 2016-07-21
php代碼:16 進位色彩轉換為 RGB 色值,本文來源:芒果小站。Copy to Clipboard引用的內容:[www.bkjia.com]/** * 16進位色彩轉換為RGB色值 * @method hex2rgb */ function hex2rgb($hexColor) { $color = str_replace('#', '', $hexColor); if (strlen($color) > 3) { $rgb = array( 'r' =>
Time of Update: 2016-07-21
經常寫採集器發布介面需要使用到遠程附件的功能,所以自己寫了一個PHP遠程下載檔案到本地的函數,一般情況下已經夠用了,如果伺服器支援CURL函數,程式則會優先選擇CURL,因為測試結果表明CURL的回應時間及資源佔用率比file_get_contents小得多;如果大家有好的建議及改進方案,歡迎留言給我哦!代碼:Copy to Clipboard引用的內容:[www.bkjia.com]echo
Time of Update: 2016-07-21
PHP有個計算兩個字串相似性的函數similar_text(),可以得出一個百分比來表示兩個字串的相似程度。效果如下: similar_text('aaaa', 'aaaa', $percent); var_dump($percent); //float(100) similar_text('aaaa', 'aaaabbbb', $percent); var_dump($percent); //float(66.666666666667) similar_text('abcdef',
Time of Update: 2016-07-21
今天一個命令列php程式,運行出現錯誤 dat e();時區設定的問題,需要通過php.ini來設定預設時區OSX系統,命令列php,並沒有啟用php.ini 需要自己建立一個sudo cp /private/etc/php.ini.default
Time of Update: 2016-07-21
在使用PHP的OO模式開發系統時,通常大家習慣上將每個類的實現都存放在一個單獨的檔案裡,這樣會很容易實現對類進行複用,同時將來維護時也很便利。這也是OO設計的基本思想之一。在PHP5之前,如果需要使用一個類,只需要直接使用include/require將其包含進來即可 test.class.phpclass abc{ function __construct() { echo 'www.hzhuti.com; } } ?>load.php代碼如下 複製代碼 class LOAD {
Time of Update: 2016-07-21
雖說最新的 PHP 5.4 已經良好支援 JSON 中文編碼,即通過 JSON_UNESCAPED_UNICODE 參數,例如: json_encode("中文", JSON_UNESCAPED_UNICODE)對於早前 PHP 版本,處理不轉義中文字元的 json 編碼,之前寫過 PHP 輸出中文 JSON 字串這篇文章,這裡分享個更完美的方法: /** * 不轉義中文字元的 json 編碼方法 * @param array $arr 待編碼數組 * @return string */
Time of Update: 2016-07-21
在閱讀PHP源碼和學習PHP擴充開發的過程中,我接觸到大量含有“TSRM”字眼的宏。通過查閱資料,知道這些宏與Zend的安全執行緒機制有關,而絕大多數資料中都建議按照既定規則使用這些宏就可以,而沒有說明這些宏的具體作用。不知道怎麼回事總是令人不舒服的,因此我通過閱讀源碼和查閱有限的資料簡要瞭解一下相關機制,本文是我對研究內容的總結。本文首先解釋了安全執行緒的概念及PHP中安全執行緒的背景,然後詳細研究了PHP的安全執行緒機制ZTS(Zend Thread
Time of Update: 2016-07-21
網上關於 PHP 緩衝類的資料很多,不過這個類應該是我見過功能滿足需求,但又無比簡潔的一個。廢話不多說,直接看代碼吧! 使用說明: 1、執行個體化 $cache = new Cache();2、設定緩衝時間和緩衝目錄 $cache = new Cache(60, '/any_other_path/');第一個參數是緩衝秒數,第二個參數是緩衝路徑,根據需要配置。 預設情況下,緩衝時間是 3600 秒,緩衝目錄是 cache/ 3、讀取緩衝 $value =
Time of Update: 2016-07-21
分頁,在做WEB開發的時候一定會遇到的,可是webpy卻沒有內建的分布類,只有自己動手寫一個簡單的分頁類。本文,就以webpy(實際只是python的功能)為便,實現一個簡單的分頁類...如何分頁 以前,經常將分頁與DB混在一起,比如以下的PHP代碼: all('select * from `xxx` limit $start,$step;');$total = $db->get('select count(*) as `total` form `xxx`;');//...pagination.
Time of Update: 2016-07-21
如果您剛剛開始學習PHP,可能有許多函數需要研究,今天我們就來學習一下PHP Header()的使用方法,更多的使用說明,請您參照PHP中文手冊,下面是關於header函數的詳細使用說明不管頁面有多少header,它會執行最後一個,不過是有條件的,例如: header('Location:http://www.bkjia.com'); header('Location:http://www.g.cn'); header('Location:http://www.baidu.com');
Time of Update: 2016-07-21
無論是書寫 JavaScript 還是 PHP,總習慣於使用單引號。但周末在家 coding 的時候碰到個問題,需要通過 PHP 過濾字串中的分行符號,按照下面的方法操作:$out = str_replace(array('\r\n', '\r', '\n'), '', $out);PHP 提供三種定義字串的方法:單引號、雙引號、本地文檔(英文叫做 here document 或者 heredoc)。 單引號: 使用單引號是最高效的方法,因為 PHP
Time of Update: 2016-07-21
冒泡排序 【基本原理】 相鄰兩數依次比較,將小數放在前面,大數放在後面。第一趟結束,將最大的數放到了最後。第二趟結束,將最大的數放到了倒數第二。依次一直下去,直至最終完成排序。 冒泡排序,只需要使用兩重迴圈實現,時間複雜度為O(n*n)。 【代碼實現】實現:兩兩比較,把小的數放在前面 $array[$j+1]){$temp=$array[$j];$array[$j]=$array[$j+1];$array[$j+1]=$temp;$flag = true;}}if(!
Time of Update: 2016-07-21
在使用PHP處理字串時,我們經常會碰到字元編碼轉換的問題,你碰到過iconv轉換失敗嗎?發現問題時,網上搜了搜,才發現iconv原來有bug ,碰到一些生僻字就會無法轉換,當然了配置第二個參數時,可以稍微彌補一下預設缺陷,不至於無法轉換是截斷,用法如下iconv(“UTF-8″,”GB2312//IGNORE”,$data)
Time of Update: 2016-07-21
最近,細細看了許多關於緩衝的文章,有程式級的、非程式級的、記憶體緩衝、檔案快取等等,感覺獲益良多,於是為鞏固知識,強化記憶,自己也多動動手去寫寫關於緩衝面的程式。這是自己寫的一個PHP檔案快取類,此類僅是對整頁頁面緩衝,原理是對php響應http請求後編譯產生的html代碼,全部以檔案形式存在伺服器上,在緩衝有效期間內,直接讀取存取緩衝,緩衝失效時,那麼就像平時訪問php一樣查詢資料庫擷取資料,同時此類為頁面產生快取檔案,以便下次訪問,減少對資料等查詢損耗。當然,這個類只不過是入門級的寫法,簡單
Time of Update: 2016-07-21
很遺憾 PHP SimpleXML 原生不支援解析帶命名空間的 XML 資料。比如有份醬紫的 xml 資料: 芒果小站 不知道如何處理,於是噁心了一把: $content = " 芒果小站 //替換字串 $content = str_replace('xxx:', '', $content); //讀取替換後的字串 $xml = simplexml_load_string($content);直接通過字串替換把所有的命名空間過濾掉。瞬間搞定,哈哈!