Time of Update: 2016-07-21
首先:找出亂碼產生的原因。 一直以為是瀏覽器的原因,結果我在chrome,firefox,IE9裡面都出現了亂碼,所以瀏覽器的因素可以排除。為了驗證我猜測是Gvim的原因, 我用記事本(note)簡單寫了一個php檔案 複製代碼 代碼如下: echo "你好"; echo "世界"; ?> 結果沒有出現亂碼,所以問題就出在Gvim上,這個結論水到渠成。 於是,開始研究Gvim的設定檔(_vimrc), 現在給大家看一下我產生亂碼之前的配置(註:我之前修改過): 複製代碼 代碼如下: set
Time of Update: 2016-07-21
在本地也解決了,但是上傳到伺服器依然有空行,搞了一個上午,都快崩潰了,最後決定自己想辦法解決,經過幾個小時的摸索終於有了完美解決方案了。 運用php顯示緩衝區顯示原理,成功去掉 在php的頭上加一行ob_start(); 然後再模板顯示前加個ob_end_clean(); 在模板顯示後加個ob_end_flush(); 這樣問題就解決了,現在給出整體結構執行個體代碼: 複製代碼 代碼如下: ob_start(); //此處為php邏輯操作 ob_end_clean();
Time of Update: 2016-07-21
線上示範地址:http://tools.jb51.net/tools/cs.php複製代碼 代碼如下:function zhuanhuan() { $urlodd=explode('//',$_GET["url"],2);//把連結分成2段,//前面是第一段,後面的是第二段 $head=strtolower($urlodd[0]);//PHP對大小寫敏感,先統一轉換成小寫,不然 出現HtTp:或者ThUNDER:這種怪異的寫法不好處理 $behind=$urlodd[1]; if($head==
Time of Update: 2016-07-21
狀況如下: 1、點擊保按鈕後,不能正常轉到頁面,出現空白頁面; 2、重新整理頁面,發出導航中許多項已經沒有了,還存在的項點擊也不能進入正常的頁面。 測試了多次沒有發現任何問題,多次重裝、測試,終於出現了一個錯誤頁面提示:“drupal Maximum execution time of 30 seconds exceeded database in /mysqli.inc”,一看這個檔案,終於發現了點曙光。baidu了下,發現有三個解決方案,一一試之,問題解決。 現將這些方法記下:
Time of Update: 2016-07-21
沒有不可能只有不去做,哈哈 複製代碼 代碼如下: set_time_limit(0); function _rand() { $length=26; $chars = "0123456789abcdefghijklmnopqrstuvwxyz"; $max = strlen($chars) - 1; mt_srand((double)microtime() * 1000000); $string = ''; for($i = 0; $i $string .= $chars[mt_rand(0,
Time of Update: 2016-07-21
任何一個WEB行為都可以認為是一個模組的某個操作,系統會根據當前的URL來分析要執行的模組和操作。這個分析工作由URL調度器來實現,官方內建了Dispatcher類來完成該調度。 在Dispatcher調度器中,會根據 http://servername/appName/moduleName/actionName/params 來擷取當前需要執行的項目(appName)、
Time of Update: 2016-07-21
類代碼:複製代碼 代碼如下: class Router { public function getRouter($types = 1) { if ( isset($_SERVER['PATH_INFO']) ) { $query_string = substr(str_replace(array('.html','.htm', '.asp', '//'), '',$_SERVER['PATH_INFO']),1); } else { $query_string =
Time of Update: 2016-07-21
我們前期開發了一個只有公司客服人員才能使用的系統——有限的幾個客服人員。就是這有限的幾個客服人員前幾天突然就提出這樣的問題:我們每隔很短一段時間 (半個小時不操作頁面),正著急解決客戶問題的時候,系統卻提示需要登入,耽誤了客戶的時間…… 這很不爽! 客戶就是上帝,唯一的上帝。於是上峰要求我們能夠實現PHP中的session永不到期,除非我們的客服人員人為的讓他到期了。出於安全性的考慮我很不理解這種永不到期的行為;出於懶惰的原因我真的不想修改以前的程式。但是沒有辦法,我依然需要改。
Time of Update: 2016-07-21
複製代碼 代碼如下: class timer { var $time_start; var $time_end; function __construct() { $this->time_start = 0; $this->time_end = 0; } function timer() { $this->__construct(); } function start() { list($usec,$sec) = explode(" ",microtime());
Time of Update: 2016-07-21
1. 值的析取PHP中,用list來析取數組中的值,如list($a, $b) = $array。如果list中的值多於數組個數,list中多餘的值會設為NULL。也可以用逗號來跳過數組中的值,如list($a, ,$b) = $array。2.劃分數組如果想取得子數組,可以用array_slice(array, offset,
Time of Update: 2016-07-21
;處理session存取的模式(預設:files) session.save_handler = files ;session檔案存放路徑(預設:/tmp) session.save_path = /tmp ;session使用cookie的功能(預設:啟動 1) session.use_cookies = 1 ;session的名字(預設:PHPSESSID) session.name = PHPSESSID ;自動啟動(預設:關 0,此處可以改為1) session.auto_start =
Time of Update: 2016-07-21
安裝php擴充:windows 下的 memcache步驟1.下載php的擴充dll:http://downloads.php.net/pierre/(如果上述目錄沒有符合你的php的編譯版本的dll就去google下吧,會有很多的哦!) 下面是我安裝的版本(因為我的php是vc6編譯的): 2.將下載的.dll放入php的擴充目錄下面,一般在php目錄中的ext 檔案夾中。3.修改apache目錄下bin檔案夾中的php.ini,加上extension=php_memcache.dll即可。
Time of Update: 2016-07-21
一個已知管用的方法是,使用session_set_save_handler,接管所有的session管理工作,一般是把session資訊儲存到資料庫,這樣可以通過SQL語句來刪除所有到期的session,精確地控制session的有效期間。這也是基於PHP的大型網站常用的方法。但是,一般的小型網站,似乎沒有必要這麼勞師動眾。 但是一般的Session的生命期有限,如果使用者關閉了瀏覽器,就不能儲存Session的變數了!那麼怎麼樣可以實現Session的永久生命期呢?
Time of Update: 2016-07-21
PHP的數組,說白了,就是關聯資料每一條數組都是以[索引,值]的形式儲存的。其中索引預設是以0開始的數字。在未指定索引時,PHP會從0開始自動產生索引。當指定一個索引,PHP會從你指定索引最大正整數的下一個整數開始。如果你指定的是小數,PHP會取整數部分做為索引。 另外說說數組其它一些小東西: array()可以聲明一個空數組; array[] = $value 在數組存在時,追加一個資料;在數組不存時,產生一個數組,並追加資料。 array[$index] = $value 在數組存在時,
Time of Update: 2016-07-21
操作的代碼如下: 複製代碼 代碼如下: $usr = new User(); echo json_encode($usr); ?> 很簡單的代碼,無中文情況一切正常,輸出如下: {"PlatformID":"123213","UserID":"1023"} 一旦有中文的時候會出現兩種情況。 第一種情況是對象本身的某個值為中文的屬性是utf-8編碼,則會有如下輸出:
Time of Update: 2016-07-21
解決方案如下,其它架構雷同。 原始碼(/system/libraries/upload.php 199 line) $this->file_type = preg_replace("/^(.+?);.*$/", "\\1", $_FILES[$field]['type']); 修改成如下: 複製代碼 代碼如下: //Edit By Tacker if(function_exists('mime_content_type')){ $this->file_type = preg_replace("/
Time of Update: 2016-07-21
現在我們大家所說的Regex基本上是指相容Perl風格的Regex。POSIX風格的Regex基本上沒人使用了,所以從PHP5.3起,已經不推薦使用了,可能到PHP的下一個版本就會把相關的函數刪除。 關於Regex,因為太複雜,所以以後想專看一本正則的書,所以只介紹相容Perl風格的Regex的一些函數。 1. 定界符
Time of Update: 2016-07-21
複製代碼 代碼如下: class person{ //下面是人的成員屬性 var $name; //人的名字 var $sex; //人的性別 var $age; //人的年齡 //定義一個構造方法參數為姓名$name,性別$sex和年齡$age function __construct($name,$sex,$age){ //通過構造方法傳進來的$name給成員屬性$this->name賦初始值 $this->name=$name;
Time of Update: 2016-07-21
以下舉例說明break 用來跳出目前執行的迴圈,並不再繼續執行迴圈了。 複製代碼 代碼如下: $i = 0; while ($i if ($arr[$i] == "stop") { break; } $i++; } ?> continue 立即停止目前執行迴圈,並回到迴圈的條件判斷處,繼續下一個迴圈。 複製代碼 代碼如下: while (list($key,$value) = each($arr)) { if ($key == "zhoz"){ //
Time of Update: 2016-07-21
1. 字串比較 在PHP中,可以用==(雙等號)或者 ===(三等號)來比較字串。兩者的區別是雙等號不比較類型,三等號會比較類型,它不轉換類型;用雙等號進行比較時,如果等號左右兩邊有數字類型的值,剛會把另一個值轉化為數字,然後進行比較。這樣的話,如果是純字串或者NULL時,會轉化為0進行比較。同樣,大小於符號也和等號一樣,比較時可能出現不正確的結果。