Time of Update: 2016-07-13
[php] function downloadFile( $fullPath ){ // Must be fresh start if( headers_sent() ) //check if any header has been sent die('Headers Sent'); //Equivalent to exit() // Required for some browsers
Time of Update: 2016-07-13
今天項目升級到php5.4,gbk編碼,htmlspecialchars轉換後的字串為空白,鬱悶啊解決,加上編碼吧,這麼多地方用到htmlspecialchars,改起來真麻煩,看來以後得自己封裝一下了。UPGRADING說到[html]- the default character set for htmlspecialchars() and htmlentities() is now UTF-8. In previous versions it was ISO-8859-1. Note
Time of Update: 2016-07-13
什麼是適配器:適配器設計模式只是將某個對象的介面適配為另一個對象所期望的介面。
Time of Update: 2016-07-13
中介者模式中介者模式用於開發一個對象,這個對象能夠在類似對象相互之間不直接相互的情況下傳送或者調解對這些對象的集合的修改。一般處理具有類似屬性,需要保持同步的非耦合對象時,最佳的做法就是中介者模式。PHP中不是特別常用的設計模式。設計情境:我們有一個CD類和一個MP3類,兩個類的結構相似。我們需要在CD類更新的時候,同步更新MP3類。傳統的做法就是在CD類中執行個體化MP3類,然後去更新,但是這麼做的話,代碼就會很難維護,如果新增一個同樣的MP4類,那麼就沒法處理了。中介者模式很好的處理了這種情
Time of Update: 2016-07-13
什麼是建造者模式建造者模式主要是為了消除其它對象複雜的建立過程。設計情境有一個使用者的UserInfo類,建立這個類,需要建立使用者的姓名,年齡,金錢等資訊,才能獲得使用者具體的資訊結果。建立一個UserInfoBuilder 使用者建造者類,這個類,將UserInfo複雜的建立姓名,年齡,金錢等操作封裝起來,簡化使用者類的建立過程代碼:UserInfo類,建立UserInfo類是複雜的,痛苦的。[php] view
Time of Update: 2016-07-13
項目使用PHP語言開發,其中用到了MONGO DB儲存;MONGO DB裡的資料是強型別,PHP裡的資料是弱類型,上周五我在MONGODB裡查詢一個資料總是找不到,最後發現問題是PHP數組的數值型字串下標自動轉變成了整數型下標;因此雖然PHP是弱類型語言,我們也要關注變數當前什麼類型,熟悉PHP的類型自動轉換規則,在一些類型敏感的地方要進行類型判斷或者強制類型轉換。 以下樣本程式簡單解釋了這個現象: Php代碼$id = "22"; $arr1[$id] = "xxx";
Time of Update: 2016-07-13
什麼是裝飾器裝飾器模式,對已有對象的部分內容或者功能進行調整,但是不需要修改原始對象結構,可以使用裝飾器設應用情境設計一個UserInfo類,裡面有UserInfo數組,用於儲存使用者名稱資訊通過addUser來添加使用者名稱getUserList方法將列印出使用者名稱資訊現在需要將添加的使用者資訊變成大寫的,我們需要不改變原先的類,並且不改變原先的資料結構我們設計了一個UserInfoDecorate類來完成這個需求的操作,就像裝飾一樣,給原先的資料進行了裝修裝飾器模式有些像適配器模式,但是一
Time of Update: 2016-07-13
includes:包含了大量的inc檔案,這些inc檔案裡面存放了drupal常用的函數misc:存放了drupal安裝中可用的js,imagemodules:存放drupal的核心模組(drupal真正的核心模組其實只有5個)profiles:網站的安裝大綱scripts:存放了大量的指令檔sites:包含了你對drupal所進行的修改themes:存放了drupal的預設主題和模板引擎corn.php:執行循環性任務index.php:drupal啟動並執行起點istall.php:drup
Time of Update: 2016-07-13
委託模式通過分配或委託其他對象,委託設計模式能夠去除核心對象中的判決和複雜的功能性。應用情境設計了一個cd類,類中有mp3播放模式,和mp4播放模式改進前,使用cd類的播放模式,需要在執行個體化的類中去判斷選擇什麼方式的播放模式改進後,播放模式當做一個參數傳入playList函數中,就自動能找到對應需要播放的方法。代碼:cd類,未改進之前,選擇播放模式是一種痛苦的事情[php] //委託模式-去除核心對象中的判決和複雜的功能性 //使用委託模式之前,調用cd類,選擇cd播放模式是複雜的選擇過程
Time of Update: 2016-07-13
PHP迭代器:可協助構造特定的對象,那些對象能夠提供單一標準介面迴圈或迭代任何類型的可計數資料。(不是特別常用,在PHP中)使用情境:1.訪問一個彙總對象的內容而無需暴露它的內部表示。2.支援對彙總對象的多種遍曆。3.為遍曆不同的彙總結構提供一個統一的介面(即,多態迭代)。PHP代碼實現:[php] //迭代器:可協助構造特定的對象,那些對象能夠提供單一標準介面迴圈或迭代任何類型的可計數資料 class MyIterator implements Iterator {
Time of Update: 2016-07-13
面板模式通過在必需的邏輯和方法的集合前建立簡單的外觀介面,外觀設計模式隱藏了調用對象的複雜性。外觀設計模式和建造者模式非常相似,建造者模式一般是簡化對象的調用的複雜性,面板模式一般是簡化含有很多邏輯步驟和方法調用的複雜性。應用情境設計一個User類,裡面有getUser擷取使用者資訊介面在使用getUser這個介面的時候,需要設定使用者的使用者名稱和使用者年齡所以在正常情況下,調用getUser介面,需要先執行個體化User類,然後設定使用者資訊,最後才調用getUser方法,這個過程是複雜的,
Time of Update: 2016-07-13
為了方便使用php的session,我在這裡重寫了一個簡單的session方法。建立application/libraries/Sessions.php,內容如下:0102if (!defined('BASEPATH')) exit('No direct script access allowed');03 04/**05* Reconstruct the session class06* @author chory07* @version 1.008*
Time of Update: 2016-07-13
原廠模式提供擷取某個對象執行個體的一個介面,同時使調用代碼避免確定執行個體化基類的步驟。原廠模式 實際上就是建立一個統一的類執行個體化的函數介面。統一調用,統一控制。原廠模式是php項目開發中,最常用的設計模式,一般會配合單例模式一起使用,來載入php類庫中的類。應用情境我們擁有一個Json類,String類,Xml類。如果我們不使用工廠方式執行個體化這些類,則需要每一個類都需要new一遍,過程不可控,類多了,到處都是new的身影引進原廠模式,通過工廠統一建立對象執行個體。代碼:[php]
Time of Update: 2016-07-13
在 php 中使用 json_encode() 內建函數(php > 5.2)可以使用得 php 中資料可以與其它語言很好的傳遞並且使用它。這個函數的功能是將數值轉換成json資料存放區格式。[php] $arr = array ( 'Name'=>'希亞', 'Age'=>20 ); $jsonencode = json_encode($arr); echo
Time of Update: 2016-07-13
如果你的網站訪問路勁是這樣的:www.2cto.com如果你這樣設定 set_cookie('a', 'a') 的話,在google瀏覽器下會遇到一個隱藏的BUG,域的問題解決方案:[php] setcookie("名稱", '值', NULL, '/')
Time of Update: 2016-07-13
mysql_pconnect() 和 mysql_connect() 非常相似,但有兩個主要區別。 首先,當串連的時候本函數將先嘗試尋找一個在同一個主機上用同樣的使用者名稱和密碼已經開啟的(持久)串連,如果找到,則返回此串連標識而不開啟新串連。 其次,當指令碼執行完畢後到 SQL 伺服器的串連不會被關閉,此串連將保持開啟以備以後使用(mysql_close() 不會關閉由 mysql_pconnect() 建立的串連)。
Time of Update: 2016-07-13
[html]require_once("email2.php");//此為php發送郵件方法二2.(SMTP傳輸SMTP類) /** *伺服器資訊 */ $MailServer = 'smtp.163.com'; //SMTP 伺服器 $MailPort = '25'; //SMTP伺服器連接埠號碼 預設25 $MailId = 'anheng123@163.com'; //伺服器郵箱帳號
Time of Update: 2016-07-13
今天在採集莫網址的圖片的時候,由於自己最後都會講圖片解析度改為320*480,而原先的圖片中存在有關於像素的資訊。 如:清晰小屋(320*480)壁紙 那麼最後我要留下的是“清晰小屋壁紙”,該怎麼辦呢? 首先我們應該立馬想到,先尋找字串,在去掉此字串。
Time of Update: 2016-07-13
電影站提供電影bt下載,由於使用寶麗通播放器,上傳電影的時候會同時上傳一個電影的hash檔案。利用這個hash檔案,第一次請求時動態產生對應的bt種子儲存(指定路徑)並提供下載。當使用者點擊下載bt種子的時候,首先到對應的目錄下檢測對應的bt種子檔案是否存在,如果存在,則直接提供下載,否則先產生,再下載。Bt種子的下載直接在檔案中使用header跳轉的方式。php檔案本身是gbk編碼。後來發現,在chrome和firefox和ie6中都能正常工作,但是到了ie8中會出現找打不檔案的情況。這讓我很
Time of Update: 2016-07-13
[html] define('SMTP_STATUS_NOT_CONNECTED', 1, TRUE); define('SMTP_STATUS_CONNECTED', 2, TRUE); class p8_smtp { var $connection; var $recipients; var $headers; var $timeout; var $errors; var $status; var