Time of Update: 2017-01-19
php函數method_exists() 與is_callable()的區別在哪?在php面相對象設計過程中,往往我們需要在調用某一個方法是否屬於某一個類的時候做出判斷,常用的方法有 method_exists()和is_callable(),相比之下,is_callable()函數要進階一些,它接受字串變數形式的方法名作為
Time of Update: 2017-01-19
在一個版面設定一個cookie時,必須重新整理或到下一個頁面才可以用 $_COOKIE 得到變數的值.原因是因為當頁面第一次被瀏覽器訪問載入時,頁面中的 cookie 會被設定,將其發送儲存到用戶端指定的儲存位置,所以$_COOKIE沒有接收到用戶端發送過來的 cookie 變數的值,當重新整理或到下一個頁面時,用戶端會在頁面程式在伺服器端運行之前,發送與該地址相對應的 cookie到伺服器端,所以 $_COOKIE 可以得到的值!
Time of Update: 2017-01-19
1.echo和print的區別PHP中echo和print的功能基本相同(輸出),但是兩者之間還是有細微差別的。echo輸出後沒有傳回值,但print有傳回值,當其執行失敗時返回flase。因此可以作為一個普通函數來使用,例如執行下面的代碼後變數$r的值將為1。$r = print "Hello
Time of Update: 2017-01-19
在PHP中數組常被當作堆棧(後進先出:LIFO)與隊列(先進先出:FIFO)結構來使用。PHP提供了一組函數可以用於push與pop(堆棧)還有shift與unshift(隊列)來運算元組元素。堆棧與列隊在實踐中應用非常廣泛。我們可以先看下堆棧: 複製代碼 代碼如下: <?php $arr = array(); array_push($arr,'aaa');
Time of Update: 2017-01-19
今天朋友群裡朋友問了下 按位與或的問題。。PHP 工作有1年了 可能對這塊不太熟悉吧 在這裡給新手朋友介紹下這部分按位於主要是對位元操作。複製代碼 代碼如下:<?php$a = 1;$b = 2;$c = $a^b;echo $c // 3?>這裡不是單純的相加關係 十進位 1換算成二進位 00000001 十進位 2換算成二進位 00000010
Time of Update: 2017-01-19
用.net開發已經很多年了,最近接觸到php,發現php也很好玩。不過發現它裡面沒有集合Collection類,只有數組,並且數組很強。這裡我用數組來封裝成一個集合Collection,代碼如下:複製代碼 代碼如下:class Collection{ private $_members=array(); public function addItem($obj,$key=null) &
Time of Update: 2017-01-19
無論你要構建自己的論壇,在你的網站上發布訊息還是書寫自己的CMS程式,你都會遇到要在資料庫中儲存層次資料的情況。同時,除非你使用一種像XML的資料庫,否則關聯式資料庫中的表都不是階層的,他們只是一個平坦的列表。所以你必須找到一種把層次資料庫轉化的方法。儲存樹形結構是一個很常見的問題,他有好幾種解決方案。主要有兩種方法:鄰接列表模型和改進前序走訪樹演算法在本文中,我們將探討這兩種儲存層次資料的方法。我將舉一個線上食品店樹形圖的例子。這個食品店通過類別、顏色和品種來組織食品。樹形圖如下:本文包含了一
Time of Update: 2017-01-19
複製代碼 代碼如下:<?php private function _deleteSubNode($ids){ $subNodes = array(); $mod = D('Node');
Time of Update: 2017-01-19
沒法清空檔案夾內容 只能清空指定連結緩衝複製代碼 代碼如下:<?phpfunction clearVarnish($ip,$url,$host=null){ $errstr = ''; $errno = ''; $varnist_arr = isset($host) ? $host : C('VARNISH_LIST'); foreach
Time of Update: 2017-01-19
一、先看最簡單的情況。有兩個數組:$arr1 = array(1,9,5);$arr2 = array(6,2,4);array_multisort($arr1,$arr2);print_r($arr1); // 得到的順序是1,5,9print_r($arr2); // 得到的順序是6,4,2我估計兩個數組的值自始至終都是對應著的:1對應6,9對應2,5對應4。我們再加多一個數組看看會怎樣:$arr1 = array(1,9,5);$arr2 = array(6,2,4);$arr3 =
Time of Update: 2017-01-19
今天在開發碰到個棘手的問題 。當非同步請求幕後處理一個大資料量操作時 請求其他控制器都沒返回資訊了。。起初以為是Ext 架構設定了ajax同步造成的。後來發現時session 死結造成其他控制器在等待session 完成後才能操作。(主要是使用者登入判斷需要更新session)當PHP 處理大資料量操作時 不能及時操作完成 這時候又有訪問其他控制器或者非同步請求時候會造成session 死結現象和同事探討了下 可使用 session_write_close() 解決此問題複製代碼
Time of Update: 2017-01-19
複製代碼 代碼如下:<?phpfunction map($fun, $list,$params=array()){ $acc=NULL; $last=array_push($params, NULL,$acc)-1; foreach($list as $params[$last-1]){
Time of Update: 2017-01-19
複製代碼 代碼如下:function compare($ph1,$ph2){ $ret = ''; $_f1Arr = explode("/",$ph1); $_f2Arr = explode("/",$ph2); $f1 = array_pop($_f1Arr); $f2 = array_pop($_f2Arr);&
Time of Update: 2017-01-19
複製代碼 代碼如下:<?php//定義縮圖片尺寸$picSize = array( '100_100'=> 1, '200_100'=>
Time of Update: 2017-01-19
複製代碼 代碼如下:<?php/** * PHP 實現var_export();功能 */ $arr = array("1","2","3"); $arr1 = array('a'=>NULL,'b'=>array('1'=>3)); var_export($arr); //var_export($arr1); function
Time of Update: 2017-01-19
複製代碼 代碼如下:<?php/** * PHP 實現explort() 功能的詳解 */$str = ',1,2,3,4,321321,aaa,bbb';function myExplode($seg,$str,$limit=0){ $_ret = array(0=>''); $len = strlen($str); $slen = strlen($seg);
Time of Update: 2017-01-19
1.盡量靜態化:如果一個方法能被靜態,那就聲明它為靜態,速度可提高1/4,甚至我測試的時候,這個提高了近三倍。當然了,這個測試方法需要在十萬級以上次執行,效果才明顯。其實靜態方法和非靜態方法的效率主要區別在記憶體:靜態方法在程式開始時產生記憶體,執行個體方法在程式運行中產生記憶體,所以靜態方法可以直接調用,執行個體方法要先成生執行個體,通過執行個體調用方法,靜態速度很快,但是多了會佔記憶體。任何語言都是對記憶體和磁碟的操作,至於是否物件導向,只是軟體層的問題,底層都是一樣的,只是實現方法不同。靜
Time of Update: 2017-01-19
php_screw確實很不錯,但是只能起到加密的作用,並沒有加速和最佳化的作用。下面我們來看看:Turck MMCache它的作用是通過對php代碼的編譯來加速、最佳化php代碼,我們如果發布的php代碼是經過編譯的,也多少能起到一些對代碼的保護作用。下面我們對compute.php進行編譯看看前後的代碼區別,下面是compute.php的原始碼<? //============用來迴圈計算的compute.php檔案================// $a=0; $t=time();
Time of Update: 2017-01-19
在使用PHP過程中發現,自己編寫的php代碼因為都是原始碼方式放在伺服器上的所以很容易就被別人拿走隨便修改(變成自己開發的)使用了。為了保住自己的勞動成果,我一直尋找一種可以加密php代碼的軟體。最著名的就是Zend公司的Zendencoder了,但是不是開源軟體(要價很高,也沒有找到破解版)。既然收費的用不起,我們就用開源的。我找到了php_screw這個開源軟體,目前最新版本是1.5安裝環境系統:centos 5.3軟體:Apache 2.2.9PHP
Time of Update: 2017-01-19
php檔案通常以文字格式設定存貯在伺服器端, 很容易被別人讀到原始碼, 為了對原始碼進行保護, 可以採用對原始碼進行加密的方式.要實現該功能需要兩部分:一是加密程式,實現對PHP檔案的加密. 另一個就是對加密過的PHP檔案進行解析, 以得到運行結果. 前者的實現比較簡單, 就是一程式而已. 後者的實現大部分都是通過php