Zend_Db_Adapter 是 zendframework 的資料庫抽象層 API,基於 pdo,你可以使用 Zend_Db_Adapter 串連和處理多種資料庫,包括 microsoft SQL Server,MySql,SQLite 等等。要針對不同的資料庫執行個體化一個 Zend_Db_Adapter 對象,需要將 adapter 的名字和描述資料庫連接的參數數組作為參數,靜態調用 Zend_Db::factory()
到底啥是Zend Framework MVC設計模式? MVC (Model-View-Controller)模式,即模型-試圖-控制器模式,其核心思想是將整個程式碼分成相對獨立而又能協同工作的3個組成部分,具體的功能如下: 控制器(Controller):控制層。起到控制整個商務程序的作用,實現View層跟Model層的協同工作。 模型(Model): 資料商務邏輯層。實現具體的商務邏輯、狀態管理的功能。
一般做內容網站,需要在每一篇文章出現與該文章相關的文章列表。多數人使用的方法大概是:建立一個關鍵詞列表,判斷每篇文章包含有那些關鍵詞,最後根據關鍵詞找出與某篇文章最相關的文章。對於內容比較複雜的網站,確定關鍵列表詞顯然比較麻煩。後來我查閱了一些php函數,感覺similar_text(php4,php5)函數能夠十分方便的達到我的要求。這個思路是:從文章列表中取出所有的文章標題,將所有的文章標題都同當前標題對比,將對比結果產生一個數組,按照相似性的大小由大到標題,利用similar_text將這
由於項目需要用到Zend Framework架構,所以現在開始深入學習這個架構。第一課總是,輸出Hello World。 配置Zend Framework啟動並執行PHP環境 首先確認你的PHP環境,Zend Framework 要求 PHP版本不低於5.1.4,但強烈建議使用 5.2.3 或更高版本,因為在這兩個版本之間有許多重大安全和效能方面的改善和提高。
項目中有個這樣的需求,就是十進位轉換為二進位、八進位、十六進位,還有二進位、八進位、十六進位轉十進位,下面記錄一下,以後用的時候可以順手拈來。 從十進位向其它進位轉換,用的是就用該數字不斷除以要轉換的進位數,讀取餘數。串連一起就可以了。下面是十進位轉換為二進位、八進位、十六進位: 0) { $t=$arr[$num%$bin].$t; $num=floor($num/$bin); }
去除一個數組中的重複值,可以使用foreach方法,也可以使用array_unique方法,下面的代碼兩種方法都使用了。 ";$intStart1 = time();$arrRS = array_unique($arrT);$intEnd2 = time();$intTime2 = $intEnd2-$intStart1;echo "With array_unique function,Spend time:($intTime2)";echo
原理很簡單,先寫一個函數,產生0-z這36個字元中的一個。每次調用 getOptions() 方法產生一個字元,它們的儲存如下:array[0] = 0, array[1] = 1, ……, array[35] = z。 Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => a [11] => b [12] => c [13] => d
很多投票都有對來路的網址和IP進行驗證,但是使用CURL可以偽造成任意的網址與IP,以繞過一些簡單的驗證,下面舉一個簡單的例子。程式運行之前,請確保 php.ini 中 extension=php_curl.dll 沒有被注釋掉。test.phptest.php 會向 test_2.php 發送請求。IP: " . getClientIp() . ""; echo "referer: " . $_SERVER["HTTP_REFERER"]; ?>程式運行結果如下:HTTP/1.1 200
require()和include()有許多相似之處,也有些不同。理解它們的不同點非常重要,否則很容易犯錯誤。 require()語句 require()語句用於指定的檔案代替語句本身,就象C語言中的include()語句一樣。如果php設定檔php.ini中的URL fopen wrappers 是開啟的(預設情況下是開啟的),就可以使用URL來指定檔案的位置從而實現遠程檔案的調用。
REMOTE_ADDR只能擷取訪問者本地串連中設定的IP,如某大學校園網中自己設定的10.X.XXX.XXX系列IP,而這個函數擷取的是區域網路網關出口的IP地址,如果訪問者使用Proxy 伺服器,將不擷取Proxy 伺服器的IP,而是擷取訪問者網關的真實IP。如果將這個函數應用到限IP訪問的網頁中,別人即使通過限IP訪問段中的Proxy 伺服器,也不能訪問該頁面。下面提供一個函數:getenv("REMOTE_ADDR")用來取得用戶端的 IP 位址,但如果用戶端是使用Proxy
有這麼一個需求,一個數組$data = array(12, 43, 87, 45),要求寫一個自訂函數,將其數組元素的數字單個拆開,最後形成的數組如下:$data = array(1, 2, 4, 3, 8, 7, 4, 5)。就是把原來的數組中的數都“拆”成“單”位的。 下面是自己寫的一個函數: function splitStrToArray_mine($array){$new_array = array();foreach($array as $value){$value =
curl 是使用URL文法的傳送檔案工具,支援FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支援SSL認證、HTTP POST、HTTP PUT 、FTP 上傳,kerberos、基於HTT格式的上傳、代理、cookie、使用者+口令證明、檔案傳送恢複、http代理通道和大量其他有用的技巧。原來php預設並不進行此項功能的擴充,但還是有的,只是沒有讓它生效罷了。開啟PHP安裝目錄,搜尋以下三個檔案
RSS 彙總最近非常流行,因此至少對 RSS 及其工作方式有所瞭解是一名 PHP 開發人員的迫切需要。本文介紹了 RSS 基礎知識、RSS 眾多用途中的一些用途、如何使用 PHP 從資料庫建立 RSS 提要,以及如何使用 XML_RSS 模組讀取現有 RSS 提要並將其轉換為 HTML。 RSS 彙總是最常見的 TLA(三字母縮寫詞)之一。RSS 作為縮寫詞具有多種含義,但是當前的標準含義是:真正簡單的彙總。這是對這一極為常見、極為有用的標準的最新解釋。 回想 Internet
以下為十個目前流行的基於MVC設計模式的PHP架構。 Zend 作為PHP藝術及精神的延伸,Zend架構的基礎在於簡單,物件導向的最佳方法,方便企業的許可協議,以及經過反覆測試的快速程式碼程式庫。Zend架構旨在建造更安全,更可靠的Web 2.0應用及web服務,並不斷從前沿廠商(如Google,Amazon,Yahoo,Flickr,StrikeIron和ProgrammableWeb等)的API那裡吸收精華。 Yii
最近做了個小任務,簡訊、多媒體訊息的群發功能。合作方提供了一個介面,我們只要把需要發送的內容拼成一個XML,再http post到那個地址就行。這裡用到了curl這個庫,簡單記錄下用法。下面是簡訊群發的小程式,先從一個上傳的電話號碼文本擷取號碼,然後擷取內容發送即可。0) {echo 'Problem:'; switch ($_FILES['phone_num']['error']) {//1表示檔案超過php配置裡的大小限制 case 1: echo 'File exceeded
前端控制器是MVC組建中的苦力,因為它要執行個體化對象、觸發事件、建立預設的行為等,它的主要目的是處理所有進入應用的請求。前端控制器的設計模式被應用於不同的MVC架構中,我們在Zend Framework中指代的前端控制器(Front
伺服器變數 $_SERVER 匯總介紹: $_SESSION['PHP_SELF'] -- 擷取當前正在執行指令碼的檔案名稱。 $_SERVER['SERVER_PROTOCOL'] -- 請求頁面時通訊協定的名稱和版本。例如,“HTTP/1.0”。 $_SERVER['REQUEST_TIME'] -- 請求開始時的時間戳記。從 PHP 5.1.0 起有效。和time函數效果一樣。
PHP不是像Lisp那樣的函數式程式設計語言,更多的,PHP適合用C的風格來編寫代碼。PHP中沒有“函數”這種類型,也就是說,函數不能直接用變數來傳遞。比如下面的代碼:function test() { echo "welcome to bkjia.com";}$test1 = test;echo gettype($test1);//輸出stringPHP是這樣解析上面的代碼的。//出現一個裸字串,不以$符開頭,那麼就把它當成常量
Zend_Controller是使用MVC模式來構建一個網站的基礎。Zend_Controller體系是一個輕量的,模組化和可擴充的體系。它只提供最核心的必要的部分,允許開發人員有很大的自由來靈活地構建自己的網站。使用Zend_Controller的網站,其代碼結構會有一部份是相似的。 Zend_Controller 的工作流程(workflow)是通過幾個組件來實現的。雖然不需要完全理解這幾個組件的含義,如果你對工作流程有點瞭解是很有協助的:
有這麼一個需求:組建檔案的時候,由於多使用者都有許可權進行產生,防止並發下,導致產生的結果出現錯誤,需要對產生的過程進行加鎖,只容許一個使用者在一個時間內進行操作,這個時候就需要用到鎖了,將這個操作過程鎖起來。在用了cache的時候,cache失效可能導致瞬間的多數並發請求穿透到資料庫此時也可以得需要用鎖在同一併發的過程中將這個伺服器用戶端檔案鎖。 針對以上的2種情況,現在的解決方案是對處理過程進行鎖機制,通過PHP實現如下: