Time of Update: 2016-07-13
十七、資源更新(PlanetResourceUpdate.php頁面)前面基本把重要的功能講解完了,這章節我們分析重要的一個函數PlanetResourceUpdate,主要功能是更新資源、製造船艦和防禦單位;代碼很有條理,下面是詳細的說明:1.計算星球的最大儲存空間,包括系統設定的浮動值2.計算星球三種資源的產量和能量消耗總量,包括專家的加成3.如果星球是月球,以上計算的產量和能量直接為04.計算上次更新資源到現在的時間5.計算由於能量比率而引起的產量變化,能量為0的時候,只有基本產量6.接下
Time of Update: 2016-07-13
項目開發中遇到這樣一個問題,在同一方法中對session數組進行賦值,但是想在此方法中接著使用此session,因為我是用的if…elseif…,由於排斥作用,在if條件中給session賦值後,再調用方法進入另一個elseif條件中就擷取不到上一步的賦值,現將解決方案總結如下:PHP SESSION有一個函數:session_write_close(),這個函數的作用是:寫入session資料儲存並且結束session。手冊中對該函數的描述中說到:Session data is
Time of Update: 2016-07-13
我在伺服器上有每天切割nginx日誌的習慣,所以針對每天各大搜尋引擎來訪,總能記錄一些404頁面資訊,傳統上我只是偶爾分析下日誌,但是對於很多日誌資訊的朋友,人工來篩選可能不是一件容易的事情,這不我個人自己慢慢研究了一點點,針對Google、百度、搜搜、360搜尋、宜搜、搜狗、必應等搜尋引擎的404訪問產生為一個txt文字檔,直接上代碼test.php。複製代碼
Time of Update: 2016-07-13
JPEG檔案格式有兩種儲存方式。他們是Baseline JPEG和Progressive JPEG.兩種格式有相同尺寸以及映像資料,他們的副檔名也是相同的,唯一的區別是二者顯示的方式不同。Baseline
Time of Update: 2016-07-13
使用模板標籤可以讓網站前台開發更加快速和簡單,使用過dedecms、phpcms等內容管理系統的人應該都知道,cms的前台都是使用模板標籤來調用資料。以調用文章列表為例:dedecms可以寫成:{dede:arclist row='10' orderby='id desc' titlelen=''} [field:title]{/dede:arclist}phpcms可以寫成:{pc:content action="hits" catid="6" num="10"
Time of Update: 2016-07-13
/** * http測試 * 註:PHP版本5.2以上才支援CURL_IPRESOLVE_V4 * @param $url 網站網域名稱 * @param $type 網站訪問協議 * @param $ipresolve 解析方式 */public function web_http($url,$type,$ipresolve) { //設定Header頭 $header[] = "Accept: application/json"; $header[] = "Accept-
Time of Update: 2016-07-13
float floor ( float value) 捨去法取整返回不大於 value 的下一個整數,將 value 的小數部分捨去取整。floor() 返回的類型仍然是 float,因為float 值的範圍通常比 integer 要大。複製代碼 代碼如下:echo floor(4.3); // 4 echo floor(9.999); // 9float ceil ( float value) 進一法取整返回不小於 value 的下一個整數,value 如果有小數部分則進一位。
Time of Update: 2016-07-13
要實現ThinkPHP線上翻譯功能,需要先在百度開發人員中心註冊一個API key,具體實現代碼如下:action代碼部分:display("Public:404"); }public function index(){$User = A("Index"); $User->head();$User->right();$User->footer();$this->display();}public function
Time of Update: 2016-07-13
php代碼:key = $key;if($iv == 0){$this->iv = $key;}else {$this->iv = $iv;}} //加密function encrypt($str){$size = mcrypt_get_block_size ( MCRYPT_DES, MCRYPT_MODE_CBC );$str = $this->pkcs5Pad ( $str, $size ); $data=mcrypt_cbc(MCRYPT_DES, $this->key, $str,
Time of Update: 2016-07-13
無平台限制只需要告知id,parentid,name 即可 array('id'=>'1','parentid'=>0,'name'=>'一級欄目一'), * 2 => array('id'=>'2','parentid'=>0,'name'=>'一級欄目二'), * 3 => array('id'=>'3','parentid'=>1,'name'=>'二級欄目一'), * 4 => array('id'=>'4','parentid'=>1,'name'=>'二級欄目二')
Time of Update: 2016-07-13
首先,將下載的Uploadify壓縮包解壓放到公用檔案夾內。實現代碼如下:前台html部分:上傳action執行代碼部分:public function uploadify() { $ph=M('Upload'); import('ORG.Net.UploadFile'); $upload = new UploadFile();// 執行個體化上傳類 $upload->maxSize = 93145728 ;// 設定附件上傳大小 $upload->saveRule =rand(1,9999);
Time of Update: 2016-07-13
有個項目用了mongodb資料庫,查詢條件有and也有or,按Thinkphp官方手冊,使用複合查詢(_complex),getLastSql輸出查詢語句,發現查詢條件是空的.用字串模式查詢(_string),請求字串查詢(_query)無法滿足需求.估計用mongodb的使用者不多,thinkphp官方對這方面支援也不夠.開啟thinkphp的mongodb驅動,Thinkphp/Extend/Driver/Db/DbMongo.class.php,找到protected function
Time of Update: 2016-07-13
針對偽造的資料從URL提交的情況,首先是一個檢查前一頁來源的如下代碼:這個方法只能防止手動在瀏覽欄上輸入的URL。事實上只要在伺服器上構造出一個指向該URL的連結(比如在發貼時加入超鏈),再點擊,這個Check就完全不起作用了。目前覺得還是用POST的方法傳遞重要資料比較可靠。可以在form中插入一些隱藏的text用於傳遞資料。或者使用下面的方法,利用Ajax從用戶端向伺服器提交資料。/*建立XHR對象*/function createXHR(){ if
Time of Update: 2016-07-13
在用ThinkPHP做tags標籤的時候,出現了一個問題,就是能擷取到參數,但是查不出相應的結果。查看資料庫探索資料是存在的。問題出在哪了呢?形如http:/www.XXXX.com/tags/index/%E8%87%AA%E5%8A%A8%E9%AA%8C%E8%AF%81.html的調用參數是經過urlencode()編碼了的,使用urldecode()函數進行解碼,再進行查詢仍然沒有結果。緊接著測試轉換編碼iconv()函數,結果成功了。瀏覽器預設的編碼是GB2312的,而這個項目採用的
Time of Update: 2016-07-13
ThinkPHP自身提供了success方法與error方法用於實現帶提示資訊的頁面跳轉功能,可實現添加資料後顯示提示資訊並跳轉的效果。success 方法用於操作成功後的提示,error 用於操作失敗後的提示,二者使用方法完全一致,下面以success 方法來進行說明。1、success方法 success方法文法如下:success(message, ajax) 參數說明message可選。頁面提示資訊。ajax可選。是否AJAX 方式提交,預設為false 。如果是AJAX 方式提交的話,
Time of Update: 2016-07-13
今天在64位Red Hat Enterprise Linux AS release 4 .7上編譯PHP5.2.6出錯,mysql是使用的RPM方式安裝的,PHP編譯代碼如下:./configure --prefix=/usr/local/php --with-mysql --with-apxs2=/usr/local/apache/bin/apxs --with-openssl --with-curl --enable-xml --with-mcrypt --with-ttf
Time of Update: 2016-07-13
一般來說,ThinkPHP的預設緩衝方式是以File檔案方式實現的,運行時會在/Runtime/Temp 下產生很多的快取檔案。 有的情況下伺服器裝了memcached之後,需要將ThinkPHP的緩衝方式更改成memecache方式具體操作步驟如下:在Conf/config.php 中添加:'DATA_CACHE_TYPE' => 'Memcache', 'MEMCACHE_HOST' => 'tcp://127.0.0.1:11211',
Time of Update: 2016-07-13
在一些微博網站上我們經常可以看到這樣的應用,微博內容列表上並沒有使用分頁條,而是一次載入一定數量的記錄顯示在列表頁,當使用者瀏覽到列表頁底部時,可以通過單擊“查看更多”來載入更多記錄。本文將結合jQuery和PHP給大家講述如何?這種功能。Ajax載入的基本原理:當頁面載入時,jQuery向後台請求資料,PHP通過查詢資料庫將最新的幾條記錄顯示在列表頁,在列表頁的底部有個“查看更多”的連結,通過觸發該連結,向服務端發送Ajax請求,後台PHP程式得到請求參數,並作出響應,擷取資料庫相應的記錄並以
Time of Update: 2016-07-13
很多的開源cms系統都有一鍵清除緩衝的功能,緩衝是為了減輕伺服器的壓力而產生的,但是同時有緩衝的存在也可能使一些資料不能即時更新,對此,我們就來實現一個ThinkPHP的清理緩衝的功能。代碼如下:ThinkPHP後台執行的代碼://擷取要清楚的目錄和目錄所在的絕對路徑 public function cache(){ ////前台用ajax get方式進行提交的,這裡是先判斷一下 if($_POST['type']){ //得到傳遞過來的值 $type=$_POST['type'];
Time of Update: 2016-07-13
對於ThinkPHP的截取字串函數無法顯示省略符號的情況,解決方案如下:開啟Common/extend.php頁面,修改msubstr函數如下:function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){ if(function_exists("mb_substr")) { if($suffix) { if($str==mb_substr($str, $start, $length,