Time of Update: 2017-02-28
在Sebastian Bergmann的Blog上看到這樣一篇文章,提到了不少將Java中的Framework或tool移植到PHP的項目。 如:From to JUnit PHPUnitJavaDoc PHPDocumentorJDBC CreoleTorque Propel 類似的還有很多,比如Jakata Struts這樣的MVC架構,已經有非常多人在嘗試用PHP來實現。
Time of Update: 2017-02-28
假設我們正在運營一個手機相關的網站,使用者可以通過指定若干參數(如作業系統,螢幕解析度,網路攝影機像素等等)來篩選自己想要的手機。不過由於手機的參數多,且不同的手機其參數差異大,所以參數表結構通常是縱表(一個參數是一行),而不是橫表(一個參數是一列),此時使用若干參數來取結果,通常就是把每個單獨參數來取結果,再一起取交集。 假定每個參數會包含一千個左右的產品ID(int),以此為前提來類比產生一些資料:<?php$rand = function() { $result =
Time of Update: 2017-02-28
PHP是一種在伺服器端執行的指令碼語言,它開發了世界上許多知名的網站,包括雅虎和Facebook等。下面介紹6條PHP代碼、效能最佳化的技巧。 1.將PHP升級到最新版 提高效能的最簡單的方式是不斷升級、更新PHP版本。 2.流量分析器 網站運行緩慢的原因頗多,Web應用程式極其複雜,讓人撲朔迷離。而一種可能性在於PHP代碼本身。這個分析器可以協助你快速找出造成瓶頸的代碼,提高網站啟動並執行總體效能。 Xdebug PHP
Time of Update: 2017-02-28
PHP5.3新增了一個叫做__invoke的魔術方法,這樣在建立執行個體後,可以直接調用對象。 class testClass { public function __invoke { print “hello world”; } } $n = new testClass; $n(); 執行結果為: hello world。 官方樣本 class CallableClass { public function
Time of Update: 2017-02-28
複製代碼 代碼如下:<?php /* * 1.內建函式:PHP可以在函數內部再聲明函數 * 目的就是在函數內部調用 * 用來協助外部函數完成一些子功能 * * 2.遞迴函式:在自己內部調用自己的函數名 * * 3.重用函數 * * require:用於靜態包含 * include:用於動態包含 * require_once:用於靜態包含,只包含一次 * include_once:用於動態包含,只包含一次 * * 4.一些系統函數的使用 * 資源=opendir("目錄名") *
Time of Update: 2017-02-28
康盛的 authcode 函數可以說對中國的PHP界作出了重大貢獻。包括康盛自己的產品,以及大部分中國使用PHP的公司都用這個函數進行加密,authcode 是使用異或運算進行加密和解密。 原理如下,假如: 加密 明文:1010 1001 密匙:1110 0011 密文:0100 1010 得出密文0100 1010,解密之需和密匙異或下就可以了 解密 密文:0100 1010 密匙:1110 0011 明文:1010 1001 並沒有什麼高深的演算法,
Time of Update: 2017-02-28
有時候,運行 Nginx、PHP-CGI(php-fpm) Web服務的 Linux 伺服器,突然系統負載上升,使用 top 命令查看,很多 php-cgi 進程 CPU 使用率接近100%。後來,我通過跟蹤發現,這類情況的出現,跟 PHP 的 file_get_contents() 函數有著密切的關係。 大、中型網站中,基於 HTTP 協議的 API 介面調用,是家常便飯。PHP 程式員們喜歡使用簡單便捷的
Time of Update: 2017-02-28
複製代碼 代碼如下:<?php /** * 建造者模式 * * 將一個複雜物件的構建與它的表示分離,使用同樣的構建過程可以建立不同的表示 */ class Product { public $_type = null; public $_size = null; public $_color = null; public function setType($type) { echo "set product type<br/>"; $this->_type =
Time of Update: 2017-02-28
PHP架構可以是單一入口,完全物件導向的,完全基於類的MVC模式。但是,我們面對大量的舊的代碼,或即便是新的代碼,也不盡然完全符合物件導向的原則,符合設計模式。小的應用無妨。但如果面對大型應用,則必然是一個不小的疼痛!! 怎麼辦?很多人總會面臨這一切,PHP代碼需要重構。(當然,你要是能明白我所說的這一切,那你肯定是看過《重構——改善既有代碼的設計》這一本書) 看看這個連結:http://zh-cn.w3support.net/index.php?db=so&id=
Time of Update: 2017-02-28
突然想到了以前接觸過flash將圖片二進位流傳給php,靈機一動用$GLOBALS['HTTP_RAW_POST_DATA']擷取到了。於是就深入的查了一下,原來PHP預設只識別application/x-www.form-urlencoded標準的資料類型,因此,對型如text/xml 或者 soap 或者 application/octet-stream 之類的內容無法解析,如果用$_POST數組來接收就會失敗!故保留原型,交給$GLOBALS['HTTP_RAW_POST_DATA']
Time of Update: 2017-02-28
複製代碼 代碼如下:<?php /** * 委託模式 樣本 * * @create_date: 2010-01-04 */ class PlayList { var $_songs = array(); var $_object = null; function PlayList($type) { $object = $type."PlayListDelegation"; $this->_object = new $object(); } function
Time of Update: 2017-02-28
複製代碼 代碼如下:<?php /** * Factory 方法模式 * * 定義一個用於建立對象的介面,讓子類決定將哪一個類執行個體化,使用一個類的執行個體化延遲到其子類 */ /* class DBFactory { public static function create($type) { swtich($type) { case "Mysql": return new MysqlDB(); break; case "Postgre": return new PostgreDB()
Time of Update: 2017-02-28
一、使用IIS運行PHP程式 1.首先下載PHP,這裡我下載的是php5.2.14(如果是其他高版本的話可能找不到php5isapi.dll,其相關配置方法暫且不論),建議下載zip壓縮包,不需安裝就可以了,並且下載時請注意用選擇VC9的包而不是VC6(這個是apache用的)。例如我解壓到d:\ php-5.2.14-Win32。 2.找到php.ini-dist 修改為php.ini ,然後開啟檔案: 找到register_globals = Off 修改為register_globals
Time of Update: 2017-02-28
複製代碼 代碼如下:<?php /** * 策略模式(Strategy.php) * * 定義一系列演算法,把它們一個個封裝起來,並且使它們可相互替換,使用得演算法的變化可獨立於使用它的客戶 * */ // ---以下是一系列演算法的封閉---- interface CacheTable { public function get($key); public function set($key,$value); public function del($key); } // 不使用緩衝
Time of Update: 2017-02-28
複製代碼 代碼如下:<?php /** * 觀察者模式 * * 定義對象間的一種一對多的依賴關係,以便當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並自動重新整理 * 能夠便利地建立查看目標對象狀態的對象,並且提供與核心對象非耦合的指定功能 * 外掛程式系統 */ class Observerable { private $_observers = array(); public function registerObserver($observer) { $this->_
Time of Update: 2017-02-28
複製代碼 代碼如下:<?php /** * 模板模式 * * 定義一個操作中的演算法骨架,而將一些步驟延遲到子類中,使得子類可以不改變一個演算法的結構可以定義該演算法的某些特定步驟 * */ abstract class TemplateBase { public function Method1() { echo "abstract Method1<br/>"; } public function Method2() { echo "abstract
Time of Update: 2017-02-28
複製代碼 代碼如下:<?php /** * 職責鏈模式 * * 為解除請求的寄件者和接收者之間的耦合,而使用多個對象都用機會處理這個請求,將這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理它 * */ abstract class Handler { protected $_handler = null; public function setSuccessor($handler) { $this->_handler = $handler; } abstract
Time of Update: 2017-02-28
1. 函數的任意數目的參數 你可能知道PHP允許你定義一個預設參數的函數。但你可能並不知道PHP還允許你定義一個完全任意的參數的函數 下面是一個樣本向你展示了預設參數的函數: // 兩個預設參數的函數 function foo($arg1 = '', $arg2 = '') { echo "arg1: $arg1\n";
Time of Update: 2017-02-28
dom|xml 有許多技術可用於用 PHP 讀取和編寫 XML。本文提供了三種方法讀取 XML:使用 DOM 庫、使用 SAX 解析器和使用Regex。還介紹了使用 DOM 和 PHP 文本模板編寫 XML。 用 PHP 讀取和編寫可延伸標記語言 (XML)(XML)看起來可能有點恐怖。實際上,XML 和它的所有相關技術可能是恐怖的,但是用 PHP 讀取和編寫 XML
Time of Update: 2017-02-28
過程|資料|資料庫 用PHP調用資料庫的存貯過程!作者:fox4000 昨天,看到一個戰友問是否可以用php調用存貯過程,感覺應該是可以的,所以,馬上進行了實驗,非常的成功!非常出乎我的意料之外!因此,寫出來,給大家參考! 大家知道,預存程序是在伺服器端的一個指令碼程式,執行起來速度很快,但它也有一個缺點,就是依賴與一個固定資料庫,移植性不好!