Time of Update: 2017-01-19
近日在看一個牛人的代碼時,看到一個非常好用的函數:extract(),它的主要作用是將數組展開,鍵名作為變數名,元素值為變數值,可以說為數組的操作提供了另外一個方便的工具,比方說,可以很方便的提取$_POST或者$_GET的元素,對錶單提交上來的內容不能不用一一賦值,直接使用下面代碼: form.html 複製代碼 代碼如下: <form action="action.php" method="post"> <input type="text" name="username"&
Time of Update: 2017-01-19
或是,PHP的設計本身就避免直接查看檔案內容的情況? 從安全形度考慮,這個系統級的檔案應該做什麼保護措施? 網友完善的答案 經調研,得出以下常用方法: 1 在程式中定義一個標識變數 複製代碼 代碼如下:define('IN_SYS', TRUE); 2 在config.php中擷取這變數 複製代碼 代碼如下: if(!defined('IN_SYS')) { exit('禁止訪問'); }
Time of Update: 2017-01-19
config.php檔案: 複製代碼 代碼如下: <?php $db_name="test"; $db_username="root"; global $db_password; ?> 資料庫操作類(調用設定檔)db.fun.php: 複製代碼 代碼如下: <?php require("config/config.php"); class db{ function fun(){ global $db_username,$db_password; echo "資料庫使用者名稱:
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php $name="admin";//kkkk $bb='234'; $db=4561321; $kkk="admin"; ?> 函數定義: 設定檔資料值擷取:function getconfig($file, $ini, $type="string") 設定檔資料項目更新:function updateconfig($file, $ini, $value,$type="string") 調用方式: 複製代碼 代碼如下:
Time of Update: 2017-01-19
其實,這不是什麼難事,因為剛入手CI,所以還是費了一番周折。好在有手冊。 找到資料庫設定檔,添加一個新的庫的串連資訊。$config[XX]。 在控制器裡邊, a) $this->xx = $this->load->database(‘XX', TRUE) tip:XX表示你配置的資料庫資訊數組的鍵名,後邊建議設定為TRUE,分別表示返回串連ID和啟用ActionRecord類 b) 然後在該控制器裡邊你就可以用 $this->xx->query()
Time of Update: 2017-01-19
複製代碼 代碼如下: for ( $i = 1; $i < 100; $i++ ) { $str = str_repeat('01234567', $i); $a = memory_get_usage(); unset($str); $b = memory_get_usage(); echo "\n ".$i.': '.($b - $a).' Bytes.'; } 從結果看出: 8 x 32 = 256 在256位元組長的時候才真正有必要釋放記憶體,有些人說,不如直接$str =
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php /* php Ubb代碼編輯器 */ function get_ubb($ubb){ $ubb=preg_replace("/([B])(.*)([/B])/","<B>\2</B>" ,$ubb);//替換B粗體字 $ubb=preg_replace("/([I])(.*)([/I])/","<I>\2</I>" ,$ubb); $ubb=preg_replace("/([U])(.*)([/U])/","
Time of Update: 2017-01-19
ceil — 進一法取整 說明 float ceil ( float value ) 返回不小於 value 的下一個整數,value 如果有小數部分則進一位。ceil() 返回的類型仍然是 float,因為 float 值的範圍通常比 integer 要大。 例子 1. ceil() 例子 複製代碼 代碼如下: <?php echo ceil(4.3); // 5 echo ceil(9.999); // 10 ?> floor — 捨去法取整 說明 float floor (
Time of Update: 2017-01-19
此時,is_scalar內建函數就派上用場了。 is_scalar -- 檢測變數是否是一個標量 標量變數是指那些包含了 integer、float、string 或 boolean的變數,而 array、object 和 resource 則不是標量。 複製代碼 代碼如下: <?php function show_var($var) { if (is_scalar($var)) { echo $var; } else { var_dump($var); } } $pi = 3.1416;
Time of Update: 2017-01-19
禁止單個IP <?php //加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')) {
Time of Update: 2017-01-19
1、代碼最佳化 代碼最佳化不僅僅是寫出乾淨和清晰的代碼,而是對代碼進行一定的簡化。可以使用Zend Optimizer來自動協助完成這些繁雜的工作。Zend Optimizer可以從Zend Technologies的網站http://www.zend.com/免費得到,但必須同意它的許可約定,因為它不是以GPL方式發行的。它的原理很簡單,即通過檢測Zend引擎產生的中間代碼,並對它進行最佳化,從而獲得更高的執行速度。 在使用了Zend
Time of Update: 2017-01-19
php串連sql2005的問題,現在整合,同時把FAQ整合上.我前面寫的教程:串連前配置系統:1.檢查檔案 php5.2.5/ntwdblib.dll 預設下面有一個,不能串連再替換.下載正確版本的 ntwdblib.dll
Time of Update: 2017-01-19
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: 2017-01-19
文法sprintf(format,arg1,arg2,arg++)參數描述format必需。轉換格式。arg1必需。規定插到 format 字串中第一個 % 符號處的參數。arg2可選。規定插到 format 字串中第二個 % 符號處的參數。arg++可選。規定插到 format 字串中第三、四等等 % 符號處的參數。說明參數 format 是轉換的格式,以百分比符號 ("%") 開始到轉換字元結束。下面的可能的 format 值:%% -
Time of Update: 2017-01-19
複製代碼 代碼如下: // define constannts for input reading define('INPUT_GET', 0x0101); define('INPUT_POST', 0x0102); define('INPUT_GPC', 0x0103); /** * Read input value and convert it for internal use * Performs stripslashes() and charset conversion if
Time of Update: 2017-01-19
比如下面的程式: 複製代碼 代碼如下: <?php $arr = array('apple','banana','cat','dog'); unset($arr[2]); print_r($arr); ?> 程式運行結果: 複製代碼 代碼如下: Array ( [0] => apple [1] => banana [3] => dog ) 但是這種方法的最大缺點是沒有重建數組索引,就是說,數組的第三個元素沒了。
Time of Update: 2017-01-19
一、apache server安全性設定 1、以Nobody使用者運行 一般情況下,Apache是由Root 來安裝和啟動並執行。如果Apache Server進程具有Root使用者特權,那麼它將給系統的安全構成很大的威脅,應確保Apache Server進程以最可能低的許可權使用者來運行。通過修改httpd.conf檔案中的下列選項,以Nobody使用者運行Apache 達到相對安全的目的。 User nobody Group# -1 2、ServerRoot目錄的許可權
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php $arr = array('a','b','c','d'); unset($arr[1]); print_r($arr); ?> print_r($arr)之後,結果卻不是那樣的,最終結果是 Array ( [0] => a [2] => c [3] => d 那麼怎麼才能做到缺少的元素會被填補並且數組會被重新索引呢?答案是array_splice(): 複製代碼 代碼如下: <?php $arr = array('a','
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php /** * 尋找 * **/ // 順序尋找 function normal_search($arrData,$val) { $len = count($arrData); if($len == 0) return -1; for($i = 0;$i < $len; $i++ ) { echo "find No.",$i + 1," value = ",$arrData[$i]," is = ",$val,"? <br/>"; //
Time of Update: 2017-01-19
由於項目的需要,要寫一個能產生“授權碼”的類(授權碼主要包含項目使用的到期時間),產生的授權碼將會寫入到一個檔案當中,每當項目啟動並執行時候,會自動讀取出檔案中的密文,然後使用唯一的“密鑰”來調用某個函數,對密文進行解密,從中解讀出項目的使用到期時間。 之前,自己有先試著寫了下,主要是base64+md5+反轉字串。演算法太過簡單,很容易被破解,而且也沒有能過做到“密鑰”在加解密中的重要性,故而舍之。 後來,尋找了相關資料,發現,原來PHP中內建了一個功能強大的函數庫,即Mcrypt。