複製代碼 代碼如下://模板存放目錄$dir = $DOCUMENT_ROOT.'/backoffice/admin/oemcheck/';$templateName = '1.xlsx';$outputFileName = '模板.xlsx';$txt='test';//執行個體化Excel讀取類$PHPReader = new PHPExcel_Reader_Excel2007();if(!$PHPReader->canRead($dir.$templateName)){ $
一、前言PHP5.5提供了許多新特性及Api函數,其中之一就是Password Hashing API(建立和校正雜湊密碼)。它包含4個函數:password_get_info()、password_hash()、password_needs_rehash()、password_verify()。在PHP5.5之前,我們對於密碼的加密可能更多的是採用md5或sha1之類的加密方式(沒人像CSDN那樣存明文吧。。),如:echo md5("123456"); //輸出: e10adc3949ba5
一、利用Google API產生二維碼 Google提供了較為完善的二維碼產生介面,調用API介面很簡單,以下是調用代碼:$urlToEncode="http://www.jb51.net"; generateQRfromGoogle($urlToEncode); /** * google api 二維碼產生【QRcode可以儲存最多4296個字母數字類型的任意文本,具體可以查看二維碼資料格式】 * @param string $chl
PclZip簡介PclZip是一個很強大的壓縮與解壓縮zip檔案的PHP類,PclZip
一、包含小時和分鐘的判斷date_default_timezone_set("Asia/Shanghai");$time = intval (date("Hi"));if ($time > "800" && $time < "1130") { // code}二、只判斷小時date_default_timezone_set("Asia/Shanghai");if(date('G')<8 || date('G')>17){ // code}$h =
很多時候我們需要將多維陣列轉成一維數組,因為我們只需要一維數組,而且一維數組使用起來更方便,在PHP中如何將多維陣列轉成一維數組?下面我們來看看三個多維陣列轉為一維數組例子:一、使用foreach複製代碼 代碼如下:<?php function arr_foreach ($arr) { static $tmp=array();
複製代碼 代碼如下:/** * 記錄和統計時間(微秒)和記憶體使用量情況 * 使用方法: * <code> * G('begin'); // 記錄開始標記位 * // ... 區間運行代碼 * G('end'); // 記錄結束標籤位 * echo G('begin','end',6); // 統計區間已耗用時間 精確到小數後6位 * echo G('begin','end','m'); //
雖然php5中已有php_strip_whitespace方法可以返回刪除注釋和空格後的PHP源碼的功能,為了學習,這裡為大家提供一個自己的方法,也可以去除代碼中的空白和注釋,代碼如下:複製代碼 代碼如下:/** * 去除代碼中的空白和注釋 * @param string $content 代碼內容 * @return string */function strip_whitespace($content) {
簡單的字串截取方法,支援中文和其他編碼,傳入相對應的參數直接調用就可以了複製代碼 代碼如下:/** * 字串截取,支援中文和其他編碼 * @static * @access public * @param string $str 需要轉換的字串 * @param string $start 開始位置 * @param string $length 截取長度 * @param string $charset 編碼格式
下面我畫了一個圖示範 client 和 server 之間建立 websocket 串連時握手部分,這個部分在 node 中可以十分輕鬆的完成,因為 node 提供的 net 模組已經對 socket 通訊端做了封裝處理,開發人員使用的時候只需要考慮資料的互動而不用處理串連的建立。而 php 沒有,從 socket 的串連、建立、綁定、監聽等,這些都需要我們自己去操作,所以有必要拿出來再說一說。① 和 ② 實際上就是一個 HTTP
微博的發言有字數限制,其計數方式是,中文算2個,英文算1個,全形字元算2個,半形字元算1個。php中內建strlen是返回的位元組數,對於utf8編碼的中文返回時3個,不滿足需求。mb_strlen 可以根據字元集計算長度,比如utf8的中文計數為1,但這不符合微博字數限制需求,中文必須計算為2才可以。google了下,找到一個discuz中截取各種編碼字元的類,改造了下,已經測試通過.其中參數$charset 只支援gbk與utf-8。複製代碼 代碼如下:$a =
寫了三種php快速排樣本,第一種效率低但最簡單最容易理解,第二個是演算法導論上提供的單向一次遍曆找中值方法,第三種是雙向遍曆找中值經典快排演算法。三組演算法實現和比較如下:方法一:該方法比較直觀,但損失了大量的空間為代價,使用了效率較低的merge函數。在三種方法中效率最低。最壞情況下演算法退化為(O(n*n))複製代碼 代碼如下:function quick_sort($array) { if(count($array) <= 1) return
php二分尋找樣本二分尋找常用寫法有遞迴和非遞迴,在尋找中值的時候,可以用插值法代替求中值法。當有序數組中的資料均勻遞增時,採用插值方法可以將演算法複雜度從中值法的lgN減小到lglgN複製代碼 代碼如下:/** * 二分尋找遞迴解法 * @param type $subject * @param type $start * @param type $end * @param type $key * @return
為PHP遍曆目錄和檔案清單寫了一個簡單的類,並附上使用執行個體,大家參考使用吧複製代碼 代碼如下:<?phpdefine('DS', DIRECTORY_SEPARATOR);class getDirFile{ //返回數組 private $DirArray = array(); private $FileArray = array();
大部分人的圖片上傳都是儲存一個路徑到資料庫,這樣在插入時確實快,也符合web的特點,但是在刪除時就很麻煩,需要找到檔案並刪除,該代碼能夠把代碼直接存入資料庫,刪除時一併刪除。請注意:這樣的話資料庫大小會激增,請酌情使用表結構 複製代碼 代碼如下:CREATE TABLE `upload` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `type` varchar(20) NOT NULL,
複製代碼 代碼如下:/** * 插入insertModel(),利用反射,效率稍差 * @param class $model 對象 * @param bool $is_returnLastInsertId 是否返回添加ID * @return int 預設返回成功與否,$is_returnLastInsertId
因為一些特殊字元的顯示效果的原因不得不把習慣的utf-8工程改成了GBK,由於使用了ajax技術,又涉及到了老問題——編碼轉換。一些表單驗證需要返回json資料,php的json_encode函數只支援utf-8編碼,無奈只得iconv了,需要達到的效果是GBK數群組轉換成utf-8數組傳給json_encode函數。最開始的思路,將數組序列化後用iconv函數轉換編碼,之後再還原序列化,代碼如下:複製代碼
不同於使用自己的伺服器進行分詞,Discuz!線上中文分詞服務是基於API返回分詞結果的。在項目中,我們只需要一個函數即可方便地進行分詞、關鍵詞提取。以下是根據Discuz!線上分詞服務API寫的函數,測試可正常運行:複製代碼 代碼如下:/** * DZ線上中文分詞 * @param $title string 進行分詞的標題 * @param $content string 進行分詞的內容 * @param $encode string
isset(PHP 3, PHP 4, PHP 5 )isset -- 檢測變數是否設定描述bool isset ( mixed var [, mixed var [, ...]])如果 var 存在則返回 TRUE,否則返回 FALSE。如果已經使用 unset() 釋放了一個變數之後,它將不再是 isset()。若使用 isset() 測試一個被設定成 NULL 的變數,將返回 FALSE。同時要注意的是一個 NULL 位元組("\0")並不等同於 PHP 的 NULL 常數。警告:
Php: BCMathbc是Binary Calculator的縮寫。bc*函數的參數都是運算元加上一個可選的 [int scale],比如string bcadd(string $left_operand, string $right_operand[, int $scale]),如果scale沒有提供,就用bcscale的預設值。這裡大數直接用一個由0-9組成的string表示,計算結果返回的也是一個 string。bcadd — 將兩個高精度數字相加 bccomp — 比較兩個高精度數字,