Time of Update: 2016-07-21
昨天, 有同事在PHP討論群裡提到, 他做的一個項目由於MySQL查詢返回的結果太多(達10萬條), 從而導致PHP記憶體不夠用. 所以, 他問, 在執行下面的代碼遍曆返回的MySQL結果之前, 資料是否已經在記憶體中了? - 複製代碼 代碼如下: while ($row = mysql_fetch_assoc($result)) { // ... } 當然, 這種問題有許多最佳化的方法. 不過, 就這個問題來講, 我首先想到,
Time of Update: 2016-07-21
主要主題是 .php字串中的變數擴充系統 .php中可用的更多資料類型 .類型之間的轉換 .輸入和使用變數和常量 .如何在php中構建運算式以及構建運算式所需的操作符 .使用語言中可用的控制結構 .1 輸入字串的更多介紹 複製代碼 代碼如下: $hour = 16; $kilometres = 4; $content = "cookie"; echo " 4pm in 24 hour time is {$hour}00 hours.\n"; echo There are
Time of Update: 2016-07-21
先明確我所指的PHP工程題,是指畢業工作後,主要以PHP進行WEB系統的開發,沒有使用其的語言工作過。工作經驗大概在3~4年,普通的WEB系統(百萬級訪問,千成級資料以內或商務邏輯不是特別複雜)開發起基本得心應手,沒有什麼問題。但他們會這樣的物點: 除了PHP不使用其它的語言,可能會點shell 指令碼。 對PHP的掌握不精(很多PHP手冊都沒有看完,庫除外) 知識面比較窄(面對需求,除開使用PHP和mysql ,不知道其它的解決辦法) PHP代碼以過程為主,認為物件導向的實現太繞,看不懂
Time of Update: 2016-07-21
在php語言中,header()這個函數很有用的,尤其在用到ajax時候,他會幫你解決一些意想不到的問題。下面是header的一些詳細講解。希望對phper有協助 複製代碼 代碼如下: // fix 404 pages: header('HTTP/1.1 200 OK'); // set 404 header: header('HTTP/1.1 404 Not Found'); // set Moved Permanently header (good for redrictions) //
Time of Update: 2016-07-21
下面的代碼:在chrome和firefox下可以產生三個cookie: cookie[one]、cookie[two]、cookie[three] 在IE下,只能產生cookie[one]、cookie[two]兩個cookie,第三個因為指定了”.65.la”,導致cookie[three]產生失敗。 複製代碼 代碼如下: setcookie(“cookie[one]“, “cookieone”,time()+36000,”/”); setcookie(“cookie[two]“,
Time of Update: 2016-07-21
函數如下: 複製代碼 代碼如下: function update_timelist(&$arr,$timestamp,$threshold){ $timequeue = &$arr['timequeue']; while(!empty($timequeue[0])&&($timestamp-$timequeue[0])>$threshold){ array_shift($timequeue); } array_push($timequeue, $timestamp);
Time of Update: 2016-07-21
近日在看一個牛人的代碼時,看到一個非常好用的函數:extract(),它的主要作用是將數組展開,鍵名作為變數名,元素值為變數值,可以說為數組的操作提供了另外一個方便的工具,比方說,可以很方便的提取$_POST或者$_GET的元素,對錶單提交上來的內容不能不用一一賦值,直接使用下面代碼: form.html 複製代碼 代碼如下: 在action.php中只要使用extract()函數將$_POST全域資料解開: action.php 複製代碼 代碼如下: extract($_POST);
Time of Update: 2016-07-21
首先我們先引用些概念: 原廠模式:專門定義一個類來負責建立其他類的執行個體,被建立的執行個體通常都具有其同的父類。原廠模式屬於類的建立模式,通常根據自變數的不同返回不同類的執行個體。 原廠模式的實質是由一個工廠類根據傳入的參量,動態決定應該建立出哪一個產品的執行個體。原廠模式式涉及到工廠角色、抽象產品角色和具體產品角色。 工廠(Creator)角色:是原廠模式的核心,它負責實現建立所有執行個體的內部邏。工廠類可以被外界直接調用,建立所需產品對象。
Time of Update: 2016-07-21
複製代碼 代碼如下:/** * 建立父節點樹形數組 * 參數 * $ar 數組,鄰接列表方式組織的資料 * $id 數組中作為主鍵的下標或關聯鍵名 * $pid 數組中作為父鍵的下標或關聯鍵名 * 返回 多維陣列 **/function find_parent($ar, $id='id', $pid='pid') { foreach($ar as $v) $t[$v[$id]] = $v; foreach ($t as $k => $item){ if( $item[$pid] ){
Time of Update: 2016-07-21
複製代碼 代碼如下:date_default_timezone_set('Asia/Hong_Kong'); //set time zoneset_error_handler("myHandler"); //set error handler$chinatime = date('Y-m-d H:i:s'); //get current time$max_size = 500000;try{ $content = "Hello
Time of Update: 2016-07-21
1.Com連結,ADODB.Connection 複製代碼 代碼如下: $conn = new Com("ADODB.Connection"); //執行個體化一個Connection對象 $connstr = "provider=sqloledb;datasource=.;uid=sa;pwd=123456;database=jnold;"; $conn->Open($connstr); $rs = new Com("ADODB.Recordset");
Time of Update: 2016-07-21
preg_match_all 函數:int preg_match_all ( string pattern, string subject, array matches [, int flags] )執行一個全域Regex匹配在 subject 中搜尋所有與 pattern 給出的Regex匹配的內容並將結果以 flags 指定的順序放到 matches 中。 搜尋到第一個匹配項之後,接下來的搜尋從上一個匹配項末尾開始。 flags 可以是下列標記的組合(注意把
Time of Update: 2016-07-21
為index.php檔案設定唯讀屬性後,木馬就沒許可權給你檔案末尾追加廣告了。下面我們看具體的代碼,設定index.php唯讀:複製代碼 代碼如下:function set_writeable($file_name){if(@chmod($file_name,0555)){ echo "修改index.php檔案唯讀屬性成功";}else{ echo "修改index.php檔案唯讀屬性失敗,空間商不支援此操作!";}}set_writeable("index.php");?>
Time of Update: 2016-07-21
PHP函數rand和mt_rand mt_rand() 比rand() 快四倍 很多老的 libc 的隨機數發生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數預設使用 libc 隨機數發生器。mt_rand() 函數是非正式用來替換它的。該函數用了 Mersenne Twister 中已知的特性作為隨機數發生器,mt_rand() 可以產生隨機數值的平均速度比 libc 提供的 rand() 快四倍。 mt_rand() 比rand() 快四倍
Time of Update: 2016-07-21
今天在處理bug的時候發現某一個很奇怪的問題,在執行某類操作的時候會報:Invalid parameter number: no parameters were bound,但是該問題在本地或是測試機上測試都沒有重現,猜想是否和版本有關,於是就google了下,發現http://forum.typecho.org/topic.php?id=1501
Time of Update: 2016-07-21
PHP variable to Javascript variable: 複製代碼 代碼如下: Form variable to Javascript variable: 複製代碼 代碼如下: PHP variable to Form variable: 複製代碼 代碼如下: Javascript variable to Form variable: 複製代碼 代碼如下:
Time of Update: 2016-07-21
mysql連結建立之後,通過如下方式設定編碼: 複製代碼 代碼如下: mysql_query("SET character_set_connection=" . $GLOBALS['charset'] . ",character_set_results=" . $GLOBALS['charset'] . ",character_set_client=binary", $this->link); 然而建立出來的表結構描述竟然是亂碼: 複製代碼 代碼如下: mysql> show create
Time of Update: 2016-07-21
複製代碼 代碼如下: // Start snipit 1 $sql = "SELECT * from "; $result = mysql_query($sql); while ($row = mysql_fetch_assoc($result)) { // do stuff with $row } mysql_data_seek($result, 0); //關鍵是這兒 while ($row = mysql_fetch_assoc($result)) { // do other stuff
Time of Update: 2016-07-21
So, your jQuery might be something like..... 複製代碼 代碼如下: $.ajax({ url: 'query.php', data: {id:10}, datatype: json success: function(results) { if (results.msg == 'success') { for (var i in data) { $('#content').append( 'id = ' + results.data[i].id + '
Time of Update: 2016-07-21
很顯然file_exists是受了asp的影響,因為asp不但有fileExists還有folderExists,driverExists,那麼PHP中file_exists是什麼意思呢? PHP的 file_exists = is_dir + is_file 它既可以判斷檔案是否存在,又可以判斷目錄是否存在。但這樣一個全面的函數執行效率非常低,就像asp中request不指定是form,還是get,cookies,所以結論是: ◦如果要判斷目錄是否存在,請用獨立函數 is_dir(