Time of Update: 2016-07-21
1 在SQL語句中可通過添加限制條件:left(text,20)只取text文本的前20個字; 2 可以用limit fromRecord, RecordNum 來作為分頁使用,比如limit 0,30表示從第一個記錄開始遍曆30個紀錄; 3 兩個表的串連可以是:table1 join table2 using x(x為兩個表的公用欄位),或者是table1 join table2 on table1.x = table2.x 4 php擷取querystring可以用$page =
Time of Update: 2016-07-21
禁止單個IP //加IP訪問限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $userip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) { $userip =
Time of Update: 2016-07-21
下面,以一個簡單的聊天室設計為例,介紹PHP+MySQL在網頁開發中的應用1、總體設計 1.1 構思與規劃: 聊天室的基本原理,就是把每個連上同一網頁的使用者傳送的發言資料儲存起來,然後將所有的發言資料傳給每一使用者。也就是說,用資料庫彙集每個人的發言,並將資料庫中的資料傳給每一個人就實現了聊天室的功能。 1.2 表設計 首先使用MySQL建立表chat用來儲存使用者的發言: 複製代碼 代碼如下: mysql> CREATE TABLE chat -> (chtime
Time of Update: 2016-07-21
1、代碼最佳化 代碼最佳化不僅僅是寫出乾淨和清晰的代碼,而是對代碼進行一定的簡化。可以使用Zend Optimizer來自動協助完成這些繁雜的工作。Zend Optimizer可以從Zend Technologies的網站http://www.zend.com/免費得到,但必須同意它的許可約定,因為它不是以GPL方式發行的。它的原理很簡單,即通過檢測Zend引擎產生的中間代碼,並對它進行最佳化,從而獲得更高的執行速度。 在使用了Zend
Time of Update: 2016-07-21
介紹 PHP是一門非常令人驚奇的語言。它足夠強大(最大的部落格(wordpress)的核心語言),它足夠廣泛(運行在最大社交網站facebook上),它足夠簡單(作為初學者首選入門語言)。在低成本的機器上運行良好。而且php語言有很多非常不錯的伺服器套件(如WAMP和MAMP),很方便的安裝在你的機器上。PHP有非常豐富的庫資源,便於開發人員很容易的處理一些業務。由於我們在項目中與日期接觸最多,所以今天就從日期函數入手學習。 舉一個簡單的date例子
Time of Update: 2016-07-21
php串連sql2005的問題,現在整合,同時把FAQ整合上.我前面寫的教程:串連前配置系統:1.檢查檔案 php5.2.5/ntwdblib.dll 預設下面有一個,不能串連再替換.下載正確版本的 ntwdblib.dll (2000.80.194.0),地址:
Time of Update: 2016-07-21
php.ini-recommended的安全等級比php.ini-dist高。預設是把display_errors 設定為 off,將magic_quotes_gpc 設定為Off等等。而相對的php.ini-dist都是預設的配置。 所以說,如果你只是想進行web測試和普通開發,使用php.ini-dist,不然就是用php.ini-recommended。具體參閱http://www.php.net 簡單說明:如果是本地開發學習,建議複製
Time of Update: 2016-07-21
定義和用法 PHP extract() 函數從數組中把變數匯入到當前的符號表中。 對於數組中的每個元素,鍵名用於變數名,索引值用於變數值。 第二個參數 type 用於指定當某個變數已經存在,而數組中又有同名元素時,extract() 函數如何對待這樣的衝突。 本函數返回成功設定的變數數目。 文法 extract(array,extract_rules,prefix)參數描述array必需。規定要使用的輸入。extract_rules可選。extract() 函數將檢查每個鍵名是否為合法的變數名,
Time of Update: 2016-07-21
方法名:mssql_fetch_row() 測試: 複製代碼 代碼如下: require 'dbconn.php'; $sql = 'select * from _Test'; $query = mssql_query($sql); while($row=mssql_fetch_row($query)) { echo $row['UserId'].'::'.$row[1].''; } 返回: Notice: Undefined index: UserId in
Time of Update: 2016-07-21
以下是核心檔案: index.php檔案 複製代碼 代碼如下: header('Content-Type:text/html charset:utf-8'); date_default_timezone_set('PRC'); $rootDir = 'listFile'; //網站根目錄,裝載本程式所有檔案 //網站base_url設定方法: //考慮到通用性,現預設使用方法二,修改方法時注意同時修改.htaccess檔案 //方法一:佈建網站目錄為根目錄 //對應.htaccess:
Time of Update: 2016-07-21
PHP多進程:使用PHP的Process Control Functions(PCNTL/線程式控制制函數) 函數參考可見:http://www.php.net/manual/zh/ref.pcntl.php 只能用在Unix Like OS,Windows不可用。 編譯php的時候,需要加上–enable-pcntl,且推薦僅僅在CLI模式運行,不要在WEB伺服器環境運行。 以下為實現PHP多進程的簡單測試代碼: 複製代碼 代碼如下: declare(ticks=1); $bWaitFlag
Time of Update: 2016-07-21
1、++i 的用法(以 a=++i ,i=2 為例) 先將 i 值加 1 (也就是 i=i+1 ),然後賦給變數 a (也就是 a=i ), 則最終 a 值等於 3 , i 值等於 3 。 所以 a=++i 相當於 i=i+1 ,a=i 2、i++ 的用法(以 a=i++ ,i=2 為例) 先將 i 值賦給變數 a (也就是 a=i ),然後 i 值加 1 (也就是 i=i+1 ), 則最終 a 值等於 2 ,i 值等於 3 。 所以 a=i++ 相當於 a=i , i=i+1 3、++i 與
Time of Update: 2016-07-21
/** * $splitChar 欄位分隔符號 * $file 資料檔案檔案名稱 * $table 資料庫表名 * $conn 資料庫連接 * $fields 資料對應的列名 * $insertType 插入操作類型,包括INSERT,REPLACE */ 複製代碼 代碼如下: /** * $splitChar 欄位分隔符號 * $file 資料檔案檔案名稱 * $table 資料庫表名 * $conn 資料庫連接 * $fields 資料對應的列名 * $insertType
Time of Update: 2016-07-21
header("Content-Type:text/html;charset=UTF-8"); $conn = mysql_connect('localhost','root','');//連結的伺服器(非永久性) if(!$conn){ echo ''; die('error:'.mysql_error()); }else{ echo ''; echo '連結的伺服器:'.$conn; } $db = mysql_select_db('test',$conn);//選擇資料庫 if(!$db)
Time of Update: 2016-07-21
is_writable用來處理,記住 PHP 也許只能以運行 webserver 的使用者名稱(通常為 \'nobody\')來訪問檔案。不計入安全模式的限制。 Example #1 is_writable() 例子 複製代碼 代碼如下: $filename = 'test.txt'; if (is_writable($filename)) { echo 'The file is writable'; } else { echo 'The file is not writable'; } ?>
Time of Update: 2016-07-21
亮點: 1、利用php也能實現對頁面div的切割處理。這裡的做法拋磚引玉,希望讀者能夠提供更加完美的解決方案。 2、切割處理方法已經封裝成一個方法,可以直接引用。 3、順便加上標籤雲的截取。//getWebDiv('id="taglist"','http://www.jb51.net/tag/'); 複製代碼 代碼如下: header("Content-type: text/html; charset=utf-8"); function getWebDiv($div_id,$url=false,
Time of Update: 2016-07-21
介紹 最新項目——會員收費,目的是要以更好的展現形式表現給使用者,以及添加了新功能(會員機制)。 索引 流程圖 1> 展示介面 2> 擷取折扣價格 介面說明 http請求指令碼(curl或socket) 測試資料 流程圖 其中裡面的demo:是通過url進行展現,裡面的mst是參數,通過不同的參數進行展現。如:http://www.demo.com/?mst=1表示參數為1的demo樣式。 展示介面(4種情況)擷取折扣價格介面說明 1、開通進階會員 psid=2 pstype=101
Time of Update: 2016-07-21
一、舉例比較 例一: 複製代碼 代碼如下: $var1 = 1; function test(){ unset($GLOBALS['var1']); } test(); echo $var1; ?> 因為$var1被刪除了,所以什麼東西都沒有列印。 例二: 複製代碼 代碼如下: $var1 = 1; function test(){ global $var1; unset($var1); } test(); echo $var1; ?>
Time of Update: 2016-07-21
複製代碼 代碼如下: $array = array( 'abcd', 'abcde', 'bcde', 'cdef', 'defg', 'defgh' ); $str = '~'.implode('~',$array).'~'; $word = $_GET['word']; //url = xxx.php?word=a preg_match_all("/~({$word}(?:[^~]*))/i",$str,$matches); var_dump($matches[1]); //輸出
Time of Update: 2016-07-21
要點:1. 適配器模式主要應用於“希望複用一些現存的類,但是介面又與複用環境要求不一致的情況”,在遺留代碼複用、類庫遷移等方面非常有用。2. 適配器模式有對象適配器和類適配器兩種形式的實現結構,但是類適配器採用“多繼承”的實現方式,帶來了不良的高耦合,所以一般不推薦使用。對象適配器採用“對象組合”的方式,更符合松耦合精神。實現:類的適配器模式結構圖(繼承) 對象的適配器模式結構圖(組合)(對象適配器的代碼實現)Target:定義Client使用的與特定領域相關的介面public