使用PHP實現計算兩個日期間隔的年、月、周、日數:複製代碼 代碼如下:<?php function format($a,$b){ //檢查兩個日期大小,預設前小後大,如果前大後小則交換位置以保證前小後大 if(strtotime($a)>strtotime($b)) list($a,$b)=array($b,$a); $start = strtotime($a); $stop = strtotime($b);
用C/C++擴充PHP的優缺點:優點:效率,還是效率減少PHP指令碼的複雜度, 極端情況下, 你只需要在PHP指令碼中,簡單的調用一個擴充實現的函數,然後你所有的功能都就被擴充實現了而缺點也是顯而易見的:開發複雜可維護性降低開發週期變長, 最簡單的一個例子,當你用PHP指令碼的時候, 如果你發現某個判斷條件出錯,你只要修改了這一行,儲存,那麼就立刻能見效。 而如果是在C/C++編寫的PHP擴充中, 那你可需要,修改源碼,重新編譯,然後重新load進PHP,
第一種方法按照YII系統的辦法產生視圖覺得有點麻煩,覺得用smarty更省事。嘗試著把smarty模板加進來了。複製代碼 代碼如下:date_default_timezone_set("PRC");class PlaceController extends CController {protected $_smarty;function __construct(){parent::__construct('place');//需要一個參數來調用父類的建構函式,該參數為控制器ID$path =
一、PHPAPC安裝下載與解壓安裝包:複製代碼 代碼如下:wget-c http://pecl.php.net/get/APC-3.1.13.tgztar-zvxf APC-3.1.13.tgzcdAPC-3.1.13編譯安裝:複製代碼 代碼如下:wget-c http://pecl.php.net/get/APC-3.1.13.tgz/usr/local/php/bin/phpize./configure--enable-apc --enable-mmap
複製代碼 代碼如下: /****************************************************** * 逐bit的低位在前演算法 * @param $x * @return int */ function reverse($x) { $result = 0; for($i = 0; $i < 8; $i++) { $result =
代理模式(Proxy),它是對簡單處理常式(或指標)的增強,用於引用一個對象:這個指標被代理(Proxy)對象取代,代理對象位於用戶端(Client)和真實執行程式之間,指標有一個可被多個目標利用的鉤子。從技術上講,這種模式在用戶端和真實主體(RealSubject)之間插入一個代理對象,維護subject介面和用不同的方式委派它的方法。代理可以透明地做任何事情:懶散建立RealSubject或載入資料,與其它機器交換訊息,寫時複製策略等。這與HTTP代理有點類似,其用戶端(如瀏覽器)和應用程式
儘管php是用C語言開發的,不過令我不解的是php沒有提供對結構體struct的直接支援。不過php提供了pack和unpack函數,用來進行位元據(binary data)和php內部資料的互轉:複製代碼 代碼如下:string pack ( string $format [, mixed $args [, mixed $...]] ) //Pack given arguments into binary string according to format. array unpack
責任鏈模式,其目的是組織一個對象鏈處理一個如方法調用的請求。當ConcreteHandler(具體的處理常式)不知道如何滿足來自Client的請求時,或它的目的不是這個時,它會委派給鏈中的下一個Handler(處理常式)來處理。這個設計模式通常和複合模式一起使用,其中有些葉子或容器物件預設委派操作給它們的父物件。另一個例子是,本地化通常是使用責任鏈處理的,當德語翻譯適配器沒有為翻譯關鍵詞找到合適的結果時,就返回到英語適配器或乾脆直接顯示關鍵詞本身。耦合減少到最低限度:Client類不知道由哪個具
2個php測試檔案server.php複製代碼 代碼如下:<?php //phpinfo();//確保在串連用戶端時不會逾時set_time_limit(0);$ip = '127.0.0.1';$port = 1935;/* +------------------------------- * @socket通訊整個過程 +------------------------------- * @socket_create * @socket_bind * @
結構模式之間有許多相似之處,因為在物件模型結構中存在幾種關係:類之間的繼承和實現,加上對象組合,這些是PHP設計模式的主要目的。對象組合的最大優勢在於可以在運行時基於配置建立起一個關係,並不用修改實際的代碼,它是類繼承和介面實現需要的一個操作。實際上,你完全可以通過修改對象之間而非類之間的連結定義一個應用程式的功能,這是設計的一部分。結構模式清單 適配器-橋接-外觀(Adapter-Bridge-Facade) 這三個模式的目標是競爭耦合:
在這一章裡你將瞭解到迷人而又讓人容易糊塗的通訊端(Sockets)。Sockets在PHP中是沒有充分利用的功能。今天你將看到產生一個能使用用戶端已連線的服務器,並在用戶端使用socket進行串連,伺服器端將詳細的處理資訊發送給用戶端。當你看到完整的socket過程,那麼你將會在以後的程式開發中使用它。這個伺服器是一個能讓你串連的HTTP伺服器,用戶端是一個Web瀏覽器,這是一個單一的 用戶端/伺服器 的關係。◆ Socket
HashTable是Zend引擎中最重要、使用最廣泛的資料結構,它被用來儲存幾乎所有的東西。1.2.1 資料結構HashTable資料結構定義如下:複製代碼 代碼如下:typedef struct bucket { ulong h; // 存放hash uint nKeyLength; void *pData; // 指向value,是使用者資料的副本 void *pDataPtr; struct bucket *pListNext; // pListNext和pListLast組成
命令模式(Command),命令模式是封裝一個通用操作的機制。如果你熟悉C或PHP,你可能已經遇到過Command,它相當於程式中的:回調(callback)。回調通常使用一個函數指標或資料結構如PHP中的字串和數組實現,Command是在一個方法調用之上的抽象,它吸收了所有物件導向的好處:合成、繼承和處理。例如,《設計模式》一書推薦使用Command儲存使用者行為鏈,以支援撤銷和重做操作。注意PHP
首先明確一下PHP的輸出順序1.開啟了php輸出緩衝: echo,print -> php output_buffring -> server buffering -> browser buffering -> browser display2.未開啟php輸出緩衝: echo,print -> server buffering -> browser buffering -> browser
PHP共有8中資料類型:類型名稱類型表示取值bool布爾型true,falseinteger整型-2147483647-2147483648string字串型字串長度取決於機器記憶體float浮點型最大值1.8e308object對象通過new執行個體化 $obj=new person(); array數群組類型$arr=array(1,2,3,4,5,6);//一維數組resoursenull空值null布爾型bool :對於其他類型我們可以使用(bool)或者(boolean)
mod_gzip是一個Apache模組,其功能是使用Gzip壓縮靜態html頁面,遵循IETF標準的瀏覽器可以接受gzip編碼(IE, Netscape等)。mod_gzip可以將頁面的下載時間提高4-5倍。我強烈建議你在你的web伺服器上使用mod_gzip。然而,我們還必須用PHP建立我們自己的壓縮引擎。在這篇文章裡,我將要介紹如何使用PHP的輸出控制函數來大幅加速頁面載入速度。 介紹PHP的輸出控制函數
1、nginx隱藏頭部版本資訊方法 編輯nginx.conf設定檔,在http{}內增加如下一行複製代碼 代碼如下:http { …… server_tokens off; …… } 編輯php-fpm設定檔,fastcgi.conf或fcgi.conf找到:複製代碼 代碼如下:fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;改為:複製代碼 代碼如下:fastcgi_param
PHP能不能成功的在Apache伺服器上運行,就看我們如何去配置PHP的運行方式。PHP運行目前為止主要有三種方式: a、以模組載入的方式運行,初學者可能不容易理解,其實就是將PHP整合到Apache伺服器,以同一個進程運行。 b、以CGI的方式運行,CGI英文叫做公用網關介面,就是Apache在遇到PHP指令碼的時候會將PHP程式提交給CGI應用程式(php-cgi.exe)解釋,解釋之後的結果返回給Apache,然後再相應請求的使用者。
我在PHP項目裡要求把資料匯出為Excel,並且資料中包含中文.網上大概瞭解一下可是使用PHPExcel,可是相對我的需求,這個架構太複雜了.於是還是想找找簡單做法.網上發現其實最簡單可以這樣寫,但問題是這種做法中文的編碼不可靠..複製代碼 代碼如下:<?php header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=export_data.xls"
如果使用者輸入的是直接插入到一個SQL語句中的查詢,應用程式會很容易受到SQL注入,例如下面的例子:複製代碼 代碼如下:$unsafe_variable = $_POST['user_input'];mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')");這是因為使用者可以輸入類似VALUE“); DROP TABLE表; - ,使查詢變成:複製代碼 代碼如下:INSERT INTO table