Time of Update: 2017-01-19
1,Smarty緩衝的配置: 複製代碼 代碼如下:$smarty->cache-dir="目錄名"; //建立緩衝目錄名 $smarty->caching=true; //開啟緩衝,為false的時候快取無效判定 $smarty->cache_lifetime=60; //緩衝時間,單位是秒 2,Smarty緩衝的使用與清除 複製代碼 代碼如下:$marty->display("cache.tpl",cache_id); //建立帶ID的緩衝
Time of Update: 2017-01-19
複製代碼 代碼如下:/** * 一元分詞演算法 * UTF8編碼下一個字元如果首字元ASCII碼不大於192則只佔1個位元組 * 如果首字元ASCII碼大於192小於224則佔用2個位元組,否則佔用3個位元組 * 一元分詞需要在mysql的my.ini檔案中增加 ft_min_word_len=1 * 可以使用mysql查詢語句 show variables like '%ft%' 查看mysql全文檢索搜尋相關設定 * * @access global * @param string
Time of Update: 2017-01-19
複製代碼 代碼如下:<?php $title='雲棲社區'; $hello='jb51.net!'; $file=file_get_contents('http://www.baidu.com'); $file=iconv("gbk//IGNORE","utf-8",$file); //echo $file; echo strpos($file,'<title>'); echo
Time of Update: 2017-01-19
複製代碼 代碼如下: function GetIP(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip =
Time of Update: 2017-01-19
我們一般是先聲明一個類,然後用這個類去執行個體化對象! 但是,當我們在聲明這個類的時候,想在類本身內部使用本類的屬性或者方法。應該怎麼表示呢? 例如: 我聲明一個User類!它只含有一個屬性 $name; class User { public $_name; } 現在,我給User類加個方法。就用getName()方法,輸出$name屬性的值吧! 複製PHP內容到剪貼簿 PHP代碼: 複製代碼 代碼如下: class User { public $name; function getName(
Time of Update: 2017-01-19
說是已經有輸出,用編輯器打,前面明明什麼都沒有,原來在使用AJAX的 時候,也出現過這種情況,後來,把這個PHP檔案放到linux中開啟,會發現,在檔案的最前面,會出現“鍩 ”這樣的一個字元(引號內),把它去掉以後,再運行,OK,運行正常。後來在網上搜尋一些檔案,給的解釋是:UTF8檔案的BOM(Byte Order Mark)標誌,在儲存的時候會自動存入! 不管它是幹嘛的,現在的目的就是把它去掉,我總結的方法有下面三種: 1、 在Linux下開啟,去掉後再儲存 2、
Time of Update: 2017-01-19
談到Form就涉及到一個發送請求方式問題(GET和POST),對於GET和POST的使用和區別在本文就不詳細說明了,一般對於Web開發由於POST傳值為隱式且傳輸資料量較大所以比較常用。在本例中對functions.js進行下修改,將建立XMLHttp對象程式建立為一個函數processajax。 複製代碼 代碼如下: function processajax (serverPage, obj, getOrPost, str){
Time of Update: 2017-01-19
我認為,出現這個問題的原因有以下幾點: 1、用戶端禁用了cookie 2、瀏覽器出現問題,暫時無法存取cookie 3、php.ini中的session.use_trans_sid = 0或者編譯時間沒有開啟--enable-trans-sid選項 為什麼會這樣呢?下面我解釋一下: Session儲存於伺服器端(預設以檔案方式儲存session),根據用戶端提供的session id來得到使用者的檔案,取得變數的值,session
Time of Update: 2017-01-19
一.首先是PHP網頁的編碼 1. php檔案本身的編碼與網頁的編碼應匹配 a. 如果欲使用gb2312編碼,那麼php要輸出頭:header(“Content-Type: text/html; charset=gb2312"),靜態頁面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有檔案的編碼格式為ANSI,可用記事本開啟,另存新檔選擇編碼為ANSI,覆蓋源檔案。 b.
Time of Update: 2017-01-19
1.php 介面類:interface 其實他們的作用很簡單,當有很多人一起開發一個項目時,可能都會去調用別人寫的一些類,那你就會問,我怎麼知道他的某個功能的實現方法是怎麼命名的呢,這個時候php介面類就起到作用了,當我們定義了一個介面類時,它裡面的方式是下面的子類必須實現的,比如 : 複製代碼 代碼如下: interface Shop { public function buy($gid); public function sell($gid); public function
Time of Update: 2017-01-19
本篇將繼續通過該執行個體講解與資料庫的互動方式。執行個體中用到的是MySQL,也可以根據自己的需要替換為其他資料庫,其串連方式可以參考PHP相關手冊。 在下面來源程式包中dbconnector.php 提供了與MySQL的串連函數。 複製代碼 代碼如下: <?php //定義資料連線變數 define ("MYSQLHOST", "localhost"); define ("MYSQLUSER", "root"); define ("MYSQLPASS", "root"); define
Time of Update: 2017-01-19
1,在函數中,傳遞數組時 使用 return 比使用 global 要高效 比如 function userloginfo($usertemp){ $detail=explode("|",$usertemp); return $detail; } $login=userloginfo($userdb); 比 function userloginfo($usertemp){ global $detail; $detail=explode("|",$usertemp); } userloginfo(
Time of Update: 2017-01-19
效果1. 當滑鼠放在某日上時,如果當天有備忘錄,則會顯示出來,如下圖: 複製代碼 代碼如下: function checkfortasks (thedate, e){ //找到頁面中taskbox對應<div>設定為可見 theObject = document.getElementById("taskbox"); theObject.style.visibility = "visible"; //初始化taskbox位置 var posx = 0; var posy = 0; //
Time of Update: 2017-01-19
對於一個很大的訊息佇列,頻繁進行進行大資料庫的序列化 和 還原序列化,有太耗費。下面是我用PHP 實現的一個訊息佇列,只需要在尾部插入一個資料,就操作尾部,不用操作整個訊息佇列進行讀取,與操作。但是,這個訊息佇列不是安全執行緒的,我只是盡量的避免了衝突的可能性。如果訊息不是非常的密集,比如幾秒鐘才一個,還是可以考慮這樣使用的。 如果你要實現安全執行緒的,一個建議是通過檔案進行鎖定,然後進行操作。下面是代碼: 複製代碼 代碼如下: class Memcache_Queue { private
Time of Update: 2017-01-19
在web開發中我們經常對我們的資料庫耗時操作做緩衝,但是可能出現一個陷阱,在緩衝失效的一瞬間,大量的訪問得到緩衝失效的標示,都去後端查詢資料庫,導致同時大量的資料庫耗時查詢,出現資料庫宕機等問題。此問題隱藏深,不容易尋找。本項目主要用於解決php的進程間鎖問題。 樣本: 複製代碼 代碼如下: <?php /** * 測試例子,同時開啟兩個頁面,可以發現總是同時只能一個頁面進入到鎖區間的代碼 * @link http://code.google.com/p/phplock/ *
Time of Update: 2017-01-19
1. 區分讀鎖定 和 寫 鎖定。 如果每次都使用 寫鎖定,那麼連多個進程讀取一個檔案也要排隊,這樣的效率肯定不行。 2. 區分 阻塞 與 非 阻塞模式。 一般來說,如果一個進程在寫一個檔案的時候,另外一個進程應該被阻塞,但是,很多時候,我們可以先幹點別的事情, 然後再判斷一下是否有其他人在寫檔案,如果沒有,再加入資料,這樣的效率更高。 3. 修複了 鎖定檔案在linux 上的bug,特別是 在 gfs 檔案系統上的bug。 代碼如下: 複製代碼 代碼如下: <?php class
Time of Update: 2017-01-19
1、定義字串 在PHP中,字串的定義可以使用單引號,也可以使用雙引號。但是必須使用同一種單或雙引號來定義字串,如:‘Hello"和“Hello'為非法的字串定義。 定義字串時,只有一種引號被視為定義符,即單引號或雙引號。於是,如果一個字串由雙引號開始,那麼只有雙引號被分析器解析。這樣,你就可以在雙引號串中包含任何其他字元,甚至單引號。下面的引號串都是合法的: Php代碼 複製代碼 代碼如下: $s = "I am a 'single quote string' inside a
Time of Update: 2017-01-19
在PHP 中引用的意思是:不同的名字訪問同一個變數內容. 與C語言中的指標是有差別的.C語言中的指標裡面儲存的是變數的內容在記憶體中存放的地址 變數的引用 PHP 的引用允許你用兩個變數來指向同一個內容 複製代碼 代碼如下: <? $a="ABC"; $b =&$a; echo $a;//這裡輸出:ABC echo $b;//這裡輸出:ABC $b="EFG"; echo $a;//這裡$a的值變為EFG 所以輸出EFG echo $b;//這裡輸出EFG ?> 函數的傳址調用
Time of Update: 2017-01-19
例如: class A { public $f1 = 'xxxx'; static public $f2 = 100; } 如果要將變數賦值為對象,那麼只能在構造器中進行初始化,例如: class A { private $child; public function __construct() { $this->child = new B(); } } 但是php中並沒有一個類似java中的靜態構造器/靜態塊的東西,就沒有合適的時機對其進行初始化了。 對於共有的成員還有辦法解決,例如:
Time of Update: 2017-01-19
本文介紹調試 PHP 應用程式的各種方法,包括在 Apache and PHP 中開啟錯誤報表,以及通過在一個簡單的 PHP 指令碼中放置策略性的 print 語句,找到更困難的 bug 的源頭。還會介紹用於 Eclipse 的 PHPEclipse 外掛程式,這是一個靈活的開發環境,具有即時文法解析能力,還會介紹 PHPEclipse 的 DBG 調試器擴充。 簡介 有許多 PHP