Time of Update: 2016-11-12
一、概念Lazy Load:一個對象,它雖然不包含所需要的所有資料,但是知道怎麼擷取這些資料。消極式載入貌似很簡單,就是在資料需要時再從資料庫擷取,減少資料庫的消耗。但這其中還是有不少技巧的。二、實現消極式載入實現Lazy Load主要有四種方法:延遲初始化、虛代理、值保持器和重影。(1)延遲初始化(Lazy initialization)1.1 概念這個是最簡單的方法。意思就是每次訪問屬性域都要先檢查該域是否為空白,如果為空白,再擷取這個域的值。這樣必須做到所有對該域的訪問,即使來自類的內部,
Time of Update: 2016-11-12
封裝成了一個方法,代碼如下:Php代碼 function readFileFromDir($dir) { if (!is_dir($dir)) { return false; } //開啟目錄 $handle = opendir($dir); while (($file = readdir($handle)) !== false) { //排除掉目前的目錄和上一個目錄 if ($file =
Time of Update: 2016-11-12
PHP 表單驗證 - 驗證 E-mail 和 URLPHP 表單必填PHP 表單完成本節展示如何驗證名字、電郵和 URL。PHP - 驗證名字以下代碼展示的簡單方法檢查 name 欄位是否包含字母和空格。如果 name 欄位無效,則儲存一條錯誤訊息:$name = test_input($_POST["name"]);if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "只允許字母和空格!
Time of Update: 2016-11-11
選擇java還是選擇PHP?學習java還是學習PHP?java好還是PHP好?java強大還是PHP強大?語言的紛爭一直沒有停歇過,我並想參與紛爭,我只想從各個角度和我知道的實際情況,對二者做個全面剖析。希望對即將入行的朋友一點參考。1、java和php技術層面對比: java是純物件導向開發,功能強大,分支眾多,沒有java不能做的軟體。C/S也好B/S也 好。從功能上講,沒有語言可以和java相比。但其優勢也是其劣勢,具體參考第6點。
Time of Update: 2016-11-12
平常開發一些效率要求比較高的功能模組時,常常需要剖析器的運行瓶頸在哪。用下面這個工具可以很方便的查看PHP的指令碼執行過程。下面是配置步驟:1. PHP安裝XDEBUG,網上很多教程,下面貼上php.ini中的配置項[xdebug]zend_extension=/usr/local/php54/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so xdebug.profiler_output_dir="/mnt/hgfs/web/
Time of Update: 2016-11-12
$username = 13800138000;$password = 123456;$sendto = 13912345678;$message = "測試一個試試看!";$curlPost =
Time of Update: 2016-11-11
<p>Mybb1.6升級到1.8升級的過程中,遇到問題無數,近日發現了一個Mybb1.8資料庫核心操作update_query的代碼中存在嚴重bug,導致資料存入時漏掉前面的零,折騰數小時,發現錯不在俺,而在mybb的升級代碼。 <br/><br/>資料表:test <br/>欄位 <br/>ID int(10) AUTO_INCREMENT &
Time of Update: 2016-11-11
<p>前幾年,我有機會能參與一些有趣的項目,並且獨立完成開發、升級、重構以及新功能的開發等工作。</p><p> 本文總結了一些 PHP 程式員在 Web 開發中經常忽略的嚴重錯誤,尤其是在處理中大型的項目上問題更為突出。典型的錯誤表現在不能很好區分各種開發環境和沒有使用緩衝和備份等。</p><p> 下面以 PHP 為例,但是其核心思想對每一個 Web
Time of Update: 2016-11-11
<p>PHP的資料類型轉換屬於強制轉換,允許轉換的PHP資料類型有:</p><p>•(int)、(integer):轉換成整形 <br/>•(float)、(double)、(real):轉換成浮點型 <br/>•(string):轉換成字串 <br/>•(bool)、(boolean):轉換成布爾類型 <br/>•(array):轉換成數組
Time of Update: 2016-11-11
<p>因為項目需要,要將PHP中SESSION儲存部分資料,不過總有個到期不能處理,這兒介紹一下session的到期設定,如果設定了session到期無效,請看下後面的解決辦法: <br/><br/>在PHP中,設定php.ini,找到session.gc_maxlifetime = 1440
Time of Update: 2016-11-11
我們在論壇發帖、發表評論、或者是使用QQ空間發布日誌、微博發表言論時,會看到發表的內容後的時間顯示為“剛剛”、“5分鐘前”、“昨天10:23”等,而不是直接顯示具體日期和時間。 本文將介紹如何?基於時間軸的時間的轉換。 首先我們要明白時間的幾個函數: time():返回當前的 Unix 時間戳記 date():格式化一個本地時間/日期。 應用舉例: date("Y-m-d H:i:s",time()); 格式化目前時間,輸出:2010-10-11 05:27:35
Time of Update: 2016-11-11
變數的範圍即它定義的上下文背景(也就是它的生效範圍)。大部分的 PHP 變數只有一個單獨的範圍。這個單獨的範圍跨度同樣包含了 include 和 require 引入的檔案。例如: Php代碼 這裡變數 $a 將會在包含檔案 b.inc 中生效。但是,在使用者自訂函數中,一個局部函數範圍將被引入。任何用於函數內部的變數按預設情況將被限制在局部函數範圍內。例如:Php代碼 這個指令碼不會有任何輸出,因為 echo 語句引用了一個局部版本的變數
Time of Update: 2016-11-11
Java代碼 先安裝sasl yum install cyrus-sasl-plain cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib yum install gcc+ gcc-c++ Java代碼 #先安裝libmemcached wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz tar zxvf
Time of Update: 2016-11-11
php下安裝Discuz!完成後點進bbs報錯: Discuz! info: MySQL Query Error Time: 2014-11-6 8:23am Script: /discuz7/bbs/index.php SQL: SELECT type FROM usergroups WHERE groupid='7' Error: Table 'discuz.usergroups' doesn't exist Errno.: 1146 Similar
Time of Update: 2016-11-11
0x00 背景 這個估計很多同學看了不屑,認為是爛大街的東西了: .htaccess檔案構成的PHP後門 那麼我來個新的吧:.user.ini。它比.htaccess用的更廣,不管是nginx/apache/IIS,只要是以fastcgi啟動並執行php都可以用這個方法。我的nginx伺服器全部是fpm/fastcgi,我的IIS php5.3以上的全部用的fastcgi/cgi,我win下的apache上也用的fcgi,可謂很廣,不像.htaccess有局限性。 0x01 .user.ini
Time of Update: 2016-11-12
function dec2bin ($dec) { $flag = array(); while ($dec != 0) { array_push($flag,$dec%2); $dec = (int)($dec/2); } $binstr = ''; while (!empty($flag)) { $binstr .= array_pop($flag); } return $binstr;}
Time of Update: 2016-11-11
在做PHP開發的時候,由於我國的語言環境問題,所以我們常常需要對中文進行處理。在PHP中,我們都知道有專門的mb_substr和 mb_strlen函數,可以對中文進行截取和計算長度,但是,由於這些函數並非PHP的核心函數,所以,它們常常有可能沒有開啟。當然,如果是用的自己
Time of Update: 2016-11-11
PHP截取字串如果是英文那很好辦,直接用substr就行了,一般不會出現亂碼.中文就有點麻煩了.下面給出兩種解決辦法:(一)直接使用Multi-Byte函數庫的mb_substr();函數就行了,執行個體代碼如下 "; ?>這種方法簡單,快速,安全,漂亮,誘惑...反正什麼好詞都可以形容它,但是,可惜我的GoDaddy主機不支援,所以得另尋出路(二)自訂截取中文字串函數,基本上就是仿照mb_substr寫個函數,直接調用罷了,以下為我找到的代碼,其實很簡單 =161))
Time of Update: 2016-11-12
<接上一篇>4、觀察者模式(Observer): 又叫發布訂閱模式,當一個主體對象發生改變時,依賴它的多個觀察者對象都得到通知並自動更新響應。就像報社一樣,今天發布的訊息只要是看這份報紙的人看到的都是同樣的內容。如果發布另一份報紙,也是一樣的。 好處:廣播式通訊,範圍大,一呼百應,便於操作一個組團,“公有制”。 弊端:不能單獨操作組團裡的個體,不能實行按需分配。 應用情境:操作多個對象,並操作相同。代碼實現:
Time of Update: 2016-11-12
//php 對象到數群組轉換 private function objToArr($obj){ if(!is_object($obj) && !is_array($obj)) { return $obj; } $arr = array(); foreach($obj as $k => $v){ $arr[$k] = $this->objToArr($