伴隨的紅火,公眾平台成為許多開發人員的下一個目標。筆者本身對於這種新鮮事物沒有如此多的吸引力。但是最近有朋友幫忙開發公眾平台中一個成績查詢的功能。於是便在空餘時間研究了一番。 主要的實現步驟是,通過PHP的CURL技術類比登陸目標網站,通過登陸的使用者,擷取到使用者的成績資訊,使用Regex對資料進行抓取和儲存,使用HTML技術對資料進行重新弄排版。 公眾平台的功能就是通過瀏覽的目的來實現成績查詢。整體的技術實現就在於PHP的CURL技術。下面就隨便找了一個檔案,擷取成績。具體代碼如下。
從某個 Redis db 匯出資料到另一個 Redis db 的PHP指令碼:複製代碼 代碼如下:$from = '127.0.0.1:6200/6';$to = '127.0.0.1:6200/8';$from_redis = redis_init($from);$to_redis = redis_init($to);$keys = $from_redis->keys('*');$count = 0;$total = count($keys);foreach($keys as
這篇文章主要介紹了php實現快速排序的三種方法,三種方法各有優缺點,需要的朋友可以參考下寫了三種php快速排樣本,第一種效率低但最簡單最容易理解,第二個是演算法導論上提供的單向一次遍曆找中值方法,第三種是雙向遍曆找中值經典快排演算法。三組演算法實現和比較如下: 方法一:該方法比較直觀,但損失了大量的空間為代價,使用了效率較低的merge函數。在三種方法中效率最低。最壞情況下演算法退化為(O(n*n)) 代碼如下:function quick_sort($array) {
PHP中變數的範圍可以分為:超全域(全域變數的特殊類型,在局部範圍裡可直接使用),全域,局部,靜態(是局部變數的特殊類型)在PHP中,全域變數實際上是靜態全域變數,如果不用unset顯式的釋放,那麼等指令碼運行結束全域變數才會被釋放掉局部靜態變數細分可以是 局部靜態函數變數(函數中聲明的static變數),局部靜態成員變數(類中聲明的 static
這篇文章主要介紹了Zend_Cache檔案快取的基本操作,簡單的樣本,,需要的朋友可以參考下Zend_Cache檔案快取的基本操作,代碼中有已寫注釋,大家共同學習一下吧 代碼如下: 60 , 'automtic_Serialization' => true);//後端緩衝設定(緩衝存放路徑)$Boptions = array('cacheDir' => 'cache');//開啟緩衝模式,(Core[核心],File[檔案],前端緩衝配置資訊,後端緩衝配置資訊)$Cache =
一、檔案系統安全php如果具有root許可權,且在指令碼中允許使用者刪除檔案,那麼使用者提交資料,不進行過濾,就非常有可能刪除系統檔案// 從使用者目錄中刪除指定的檔案$username = $_POST['user_submitted_name'];$userfile = $_POST['user_submitted_filename'];$homedir = "/home/$username";unlink ("$homedir/$userfile");echo "The file has
折騰VPS的朋友,在安裝好LNMP等Web運行環境後都會選擇一些緩衝擴充安裝以提高PHP運行速度,常被人介紹的有eAccelerator、memcached、xcache、Alternative PHP
這篇文章主要介紹了php使用websocket樣本,需要的朋友可以參考下下面我畫了一個圖示範 client 和 server 之間建立 websocket 串連時握手部分,這個部分在 node 中可以十分輕鬆的完成,因為 node 提供的 net 模組已經對 socket 通訊端做了封裝處理,開發人員使用的時候只需要考慮資料的互動而不用處理串連的建立。而 php 沒有,從 socket 的串連、建立、綁定、監聽等,這些都需要我們自己去操作,所以有必要拿出來再說一說。 ① 和 ②
下面我畫了一個圖示範 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) $key = $array[0]; $rightArray =
這篇文章主要介紹了使用PHP匯出Redis資料到另一個Redis中的方法,需要的朋友可以參考下從某個 Redis db 匯出資料到另一個 Redis db 的PHP指令碼: 代碼如下:$from = '127.0.0.1:6200/6';$to = '127.0.0.1:6200/8'; $from_redis = redis_init($from);$to_redis = redis_init($to); $keys = $from_redis->keys('*');$count =
PclZip是一個很強大的壓縮與解壓縮zip檔案的PHP類,這篇文章主要介紹了PclZip的使用方法PclZip簡介PclZip是一個很強大的壓縮與解壓縮zip檔案的PHP類,PclZip library能夠壓縮與解壓縮Zip格式的壓縮檔(WinZip、PKZIP);且能對此類類檔案進行處理,包括產生壓縮檔、列出壓縮檔的內容以及解壓縮檔案等等。 簡單、易用、強大是我對它的評價。
php二分尋找樣本二分尋找常用寫法有遞迴和非遞迴,在尋找中值的時候,可以用插值法代替求中值法。當有序數組中的資料均勻遞增時,採用插值方法可以將演算法複雜度從中值法的lgN減小到lglgN複製代碼 代碼如下:/** * 二分尋找遞迴解法 * @param type $subject * @param type $start * @param type $end * @param type $key * @return boolean */function
很多時候我們需要將多維陣列轉成一維數組,因為我們只需要一維數組,而且一維數組使用起來更方便,在PHP中如何將多維陣列轉成一維數組?下面我們來看看三個多維陣列轉為一維數組例子:一、使用foreach複製代碼 代碼如下: function arr_foreach ($arr) { static $tmp=array(); if (!is_array ($arr)) { return false; } foreach (
複製代碼 代碼如下:/** * 記錄和統計時間(微秒)和記憶體使用量情況 * 使用方法: * * G('begin'); // 記錄開始標記位 * // ... 區間運行代碼 * G('end'); // 記錄結束標籤位 * echo G('begin','end',6); // 統計區間已耗用時間 精確到小數後6位 * echo G('begin','end','m'); // 統計區間記憶體使用量情況 * 如果end標記位沒有定義,則會自動以當前作為標記位 * 其中統計記憶體使用量需要
複製代碼 代碼如下:require_once("Zend/Loader.php");Zend_Loader::loadClass("Zend_Session_Namespace");$Session = new Zend_Session_Namespace('Db');$Session ->host = '127.0.0.1';$Session ->username = 'root';$Session ->password = '111';$Session ->dbname =
簡單使用複製代碼 代碼如下:require_once("Zend/Loader.php");Zend_Loader::loadClass("Zend_Registry");$Arr = array( 'host' => '127.0.0.1', 'username' => 'root', 'password' => '111', 'dbname' => 'test');$Reg = new Zend_Registry($Arr);echo '主機名稱:' . $Reg['host'] . "";
簡單的字串截取方法,支援中文和其他編碼,傳入相對應的參數直接調用就可以了複製代碼 代碼如下:/** * 字串截取,支援中文和其他編碼 * @static * @access public * @param string $str 需要轉換的字串 * @param string $start 開始位置 * @param string $length 截取長度 * @param string $charset 編碼格式 * @param string $suffix 截斷顯示字元 *
複製代碼 代碼如下:/*過濾器的簡單使用方法及操作()*/require_once("Zend/Loader.php");//引入Filter的字串轉小寫類 與 轉大寫類Zend_Loader::loadClass("Zend_Filter_StringToLower");Zend_Loader::loadClass("Zend_Filter_StringToUpper");//執行個體化字串轉小寫類 與 轉大寫類$Filter = new Zend_Filter_StringToLower()