PHP的物件導向編程:開發大型PHP項目的方法(一)作者:Luis Argerich 譯者:limodou 這篇文章介紹了在PHP中的物件導向編程(OOP,Object Oriented Programming)。我將向你示範如何通 過使用一些OOP的概念和PHP的技巧來減少編碼和提高品質。祝你好運! 物件導向編程的概念: 不同的作者之間說法可能不一樣,但是一個OOP語言必須有以下幾方面: 抽象資料類型和資訊封裝 繼承 多態 在PHP中是通過類來完成封裝的: ----------
1 曆史 Rasmus Lerdorf為了建立他的線上簡曆而創造了"個人首頁工具"(Personal Home Page Tools)。這是一種非常簡單的語言。其後越來越多的人們注意到了這種語言並對其擴充提出了各種建議。在許多人的無私奉獻下以及這種語言本身的原始碼自由性質,它演變成為一種特點豐富的語言,而且現在還在成長中。
PHP的物件導向編程:開發大型PHP項目的方法(五)作者:Luis Argerich 譯者:limodou 使用類進行資料存放區 對於PHP和OOP一件非常好的事情就是,你可以很容易地定義一個類來操作某件事情,並且無論何時你想 用的時候都可以調用相應的類。假設你有一個HTML表單,使用者可以通過選擇產品ID號來選擇一個產品。在數 據庫中有產品的資訊,你想把產品顯示出來,顯示它的價格等等。你擁有不同類型的產品,並且同一個動作 可能對不同的產品具有不同的意思。例如,顯示一個聲音可能意味著播放它,
9. 簡易banner動態更替 不知大家有沒有發現各大網站上的標題廣告banner,我們每次訪問這些網站時,都會看到不同的廣告表徵圖,或者如果你每次重新整理頁面時,這些廣告banner就會不斷地隨機更替變換。要實現這種效果雖然用javascript也可以達到(象天極網站的動態變換廣告banner就是通過調用javascript來實現的),但是如果我們用PHP的話,我們還可以結合資料庫來做資料量很大,如每日一題之類的功能。費話少說,讓我們立即來看看如何用PHP來實現banner的動態更替功能。
Obtaining PHPThis section has details about PHP download locations, and OS issues. 1. 我在哪兒能得到PHP? 2. 有先行編譯的二進位版本嗎? 3. 我在哪兒能得到可選的PHP擴充庫 ? 4. 我怎樣做才能使這些庫運作起來? 5. 我在我的windows上用CVS得到最新版本的PHP原始碼, 我怎樣編譯它? 6. 我在哪兒能找到 Browser Capabilities File?1. 我在哪兒能夠得到PHP?
PHP 可以操作 Win32 平台下的 COM 和 DCOM 物件 1. 我建立了一個DLL來計算一些東西. 有什麼方法可以在 PHP 下運行這個DLL嗎 ? 2. 'Unsupported variant type: xxxx (0xxxxx)' 是什麼意思 ? 3. PHP 裡操作可視化對象可能嗎? 4. 我可以把COM 物件存諸到 session 裡嗎 ? 5. 我怎樣捕獲 COM 錯誤 ? 6. 我怎樣在 PHP 裡產生DLL檔案,就象我在 Perl 裡做的一樣? 7. 'Unable
PHP4:奇蹟背後 1995年時,Rasmus在用PHP寫他的個人首頁;今天,PHP成為風靡全球的指令碼語言,越來越多的網站選擇使用PHP,連Yahoo都放棄了自己的指令碼而改用PHP支援它的網站。可以說,PHP是一個奇蹟。我一直認為,任何奇蹟背後都有它的原因。現在,就讓我們透過這個奇蹟,來看看PHP的成功之道。1 簡單易用PHP的入門門檻很低,它對使用者的要求微乎其微。學過C語言的人,使用PHP幾乎不需要什麼時間。它們的文法是如此相似,以至於我常常想,是不是在C語言變數前加個$就能改成PHP。
PHP 和 HTMLPHP 和 HTML 可以互操作: PHP 能夠產生 HTML, 而 HTML 可以傳遞資訊給 PHP. 1. 我用一個 form/URL傳值時,我要怎樣 編碼/解碼? 2. 我在用 <input type="image"> 標記, 但 $foo.x and $foo.y 變數卻不可用. 它們在哪裡? 3. 我怎樣建立 HTML <form>數組? 4. 我怎樣從一個多選框得到所有的結果值? 1. 我用一個 form/URL傳值時,
以前類比post請求俺都用PHP curl擴充實現來著,沒想過PHP socket也可以實現。最近翻了下相關資料才發現原來沒有那麼高深,只是以前一直沒有完全理解post的原理和本質而已,其實就是發送給目的程式一個標誌為post的協議串如下:POST /目的程式url HTTP/1.1Accept: 接收資訊格式Referer: url來路Accept-Language: 接收語言Content-Type: application/x-www-form-urlencodedCookie:
清除了bom,代碼也是頂行開始寫的,gd庫也是開啟的,從這裡來看估計不是gd庫的問題了,可能出在程式那句代碼上。產生驗證碼的代碼: 代碼如下複製代碼 <?php/** 驗證碼產生程式*/$letter = '';//擷取隨機數字for ($i=0; $i<2; $i++) { $letter .= chr(mt_rand(48,57));}//擷取隨機字母for ($i=0; $i<2; $i++)
php截取中文字串出現亂碼,這是最近發現的事情,先前我曾經寫過一篇關於自動產生meta資訊的文章,那篇關於利用php截取文章前多少字作為description方法,但是出現了IE6無法載入CSS的現象,這裡做一個補充。 首先要明確這麼一個問題,之所以會出現IE6偶爾無法載入CSS的現象,是因為檔案出現了亂碼,導致後面的載入CSS的link無法被IE6正確解析。因此就看到了一個純HTML頁面,沒有CSS,赤裸裸!明確了問題,剩下的問題就好解決了,就是防止亂碼,既然萬戈所提供的函數出現了亂
調用mt_rand()這個方法可以產生隨機數字,參數是範圍的最小值和最大值,函數會返回最小值和最大值之間的一個隨機數字。要產生真正的隨機數,對於計算來說不是一件容易的事。php中兩種方法可以產生隨機數,一個經典的函數叫rand(),另一個更出色的函數是mt_rand()。例1 代碼如下複製代碼 $random =rand(0,1000);或者<?php $rand = mt_rand(1, 100); echo $rand;?>
寫一個函數,能夠遍曆一個檔案夾下的所有檔案和子檔案夾。 代碼如下複製代碼 $dirs='e:/pdf'; function FileShow($dirs) { $dir=opendir($dirs); while ($f=readdir($dir)) { if($f != '.' && $f != '..')
一:更推薦這種方法,因為它可以把www.111cn.net原來所有的url都轉到111cn.net新的地址上 代碼如下複製代碼 <?php$the_host = $_SERVER['HTTP_HOST'];$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';if($the_host == 'www.111cn.net'){header('HTTP/1.1 301
php把數組寫入檔案,通過序列和反序列實現。請看代碼$file="./data/file.cache";file_put_contents($file,serialize($array));//寫入緩衝 代碼如下複製代碼 <?php $file="./data/file.cache"; $array = array("count" => "3000",
簡單說一下原理,這裡重利用的是 PHP 的替換函數 preg_replace,在實際應用中,我們經常使用 preg_replace 去替換一些危險字元或去轉換一些斜杠或斷行符號等。preg_replace($1,$2,$3) 有三個重要的參數,其中 $1 是要搜尋的字串,$2 是要替換成的字串,$3 是要進行替換的字串。那麼知道了 preg_replace 函數工作的原理,那麼進行替換超連結就不難了,我們只需要將參數 $1 和 $2 轉換成數組,進行批量替換,以下是方法,測試成功,共用給
echo是PHP語句, print和print_r是函數,語句沒有傳回值,函數可以有傳回值(即便沒有用)print() 只能列印出簡單類型變數的值(如int,string)print_r() 可以列印出複雜類型變數的值(如數組,對象)echo 輸出一個或者多個字串echo — 輸出一個或者多個字串Descrīptionvoid echo ( string arg1 [, string ...] ) //傳回值為空白 代碼如下複製代碼 echo
回來後一直在揪心啊,於是翻了一下書本查閱,給我知道了答案。為了記住它們,我決定來一個數組排序函數大總結。首先接觸的就是PHP數組排序、降序的排序問題。sort:本函數為 array 中的單元賦予新的鍵名。這將刪除原有的鍵名而不僅是重新排序。 rsort:本函數對數組進行逆向排序(最高到最低)。 刪除原有的鍵名而不僅是重新排序。 asort:對數組進行排序並保持索引關係 arsort:對數組進行逆向排序並保持索引關係ksort:對數組按照鍵名排序,保留鍵名到資料的關聯
貼一段代碼,在php中擷取隨機數組 不用多說,直接貼代碼,php中的array_rand很變態,突破了正常人的理解,繁瑣例1 代碼如下複製代碼 function create_random_ids( $min,$max,$limited ){ $_base_ids = range($min,$max); $_temp_key = array_rand
在PHP中,靜態變數的解釋是存在於類範圍的變數,在第一次初始化時給變數賦值,以後類初始化時,靜態變數將不會再被重新賦值,主要用於一個類具有多個執行個體時的變數共用,以下為PHP的靜態變數使用代碼:使用靜態變數變數範圍的另一個重要特性是靜態變數(static variable)。靜態變數僅在局部函數域中存在,但當程式執行離開此範圍時,其值並不丟失。看看下面的例子:例子 7-4. 示範需要靜態變數的例子 代碼如下複製代碼 <?phpfunction Test (){$a =