PHP_動態二維陣列

0 意見

/**

* 動態多組陣列資料合併以及分類

* 1.可設定資料中任意陣列為 Key

* 2.如 Key 陣列內有重複的值,會以三維陣列的方式丟出結果,

* 達到資料分類的情況

* 3.因為資料多寡關係會有禿然輸出格式異變的情況,

* 所以加入了一個強制丟出三維陣列結果的參數

*

* 資料型態為一個二維陣列如

* $array = array(

* array('Bill','Lisa','Tre'),

* array(21,22,23),

* array('Male','Female','Male'), <- 這就是上述第二點的狀況

* array('Customer Service Rep','Intranet Site Admin','Mailroom Geek'),

* );

*

* @param 陣列型態資料 $arr

* @param 設定為 Key 的陣列 $df

* @param 強制輸出為三維陣列 可為 0 & null 以外值啟用 $coerce

* @return Array

*/

function array_data_classify($arr=array(),$df='',$coerce=''){

if(!$df){$df=0;}

$chk = (count($arr[$df]) == count(array_unique($arr[$df])) &&

$coerce == '')? 0 : 1;

switch ($chk) {

case 0:

foreach ($arr as $key=>$data){

foreach ($data as $key1=>$data1){

if($key != $df){

$rs[$arr[$df][$key1]][] = $data1;

}

}

}

break;

case 1:

foreach ($arr as $key=>$data){

foreach ($data as $key1=>$data1){

if($key != $df){

$rs_t[$arr[$df][$key1]][$key1][] = $data1;

}

}

}

foreach ($rs_t as $key=>$data){

foreach ($data as $data1){

$rs[$key][] = $data1;

}

}

break;

}

return $rs;

}

PHP文字轉碼 Big5轉utf-8

0 意見

文字轉碼問題, 先前用iconv(),好用但是缺點就是會掉字,如宏"碁"的碁字轉不出來,連帶後面的自全都變成空白,php有提供一個方法叫做mbstring,
不過你要先把這個功能在php.ini中打開

;extension=php_mbstring.dll
改成
extension=php_mbstring.dll

重新啟動apache
-------------------------------------------------------------------
接下來要轉碼的語法如下:

mb_convert_encoding(要被轉得字串, '目標編碼', '原本的編碼');

範例:
$eurl = mb_convert_encoding("宏碁電腦", "utf-8","big5");   //big5轉utf-8

MySQL 微調技巧

0 意見

以下會介紹一些簡易的 MySQL 效能微調技巧,這些方法都是透過 my.cnf 的參數完成,而不需要重新編譯 MySQL。


Key Buffer

key buffer 是系統索引可用的緩存空間大小,對處理索引有很大的影響。設定 key buffer 的大小要根據自己的需要而定,而一個較簡單的方法是使用 25% 的記憶體空間作為 key buffer 使用。如果是獨立的資料庫伺服器可考慮使用更大的空間,例如 50%。

通這設定 key buffer 的大小,可以減少硬碟 I/O 操作對 MySQL 的影響。

以下是 key buffer 在 my.cnf 的設定方法:
key_buffer = 512M

Query Cache

這是 SQL Query 的緩存,將 query 的查詢結果暫存在記憶體裡面,直至資料被更新為止。
query_cache_size = 128MB
query_cache_limit = 4MB

Table Cache

對於同時要存取多個資料表十分重要,這是設定同時可開啟資料表的數目。
table_cache = 512

Sort Buffers

sort_buffer_size (在舊版本是 sort_buffer) 是設定 grouping 及 sorting 的緩存。
sort_buffer_size = 32M
myisam_sort_buffer_size = 32M

繼續使用MSN 8.5舊版,拒用新版巨獸

0 意見

可能我的電腦比較老舊,我總覺得每一次MSN更新版本,系統就會吃的更兇,我是很討厭這樣,現在介紹一個方法讓舊版的MSN可以繼續使用,不會被強迫升級

首先先將MSN關閉,在MSN程式的捷徑上滑鼠右鍵選擇最下面的內容,進入之後可以看到有一個相容性的頁籤,選它,然後勾選以相容性模式執行這個程式,然後選windows 2000按確定後就可以繼續使用舊版,快速又省資源

解決PHP及MySQL亂碼問題

0 意見

問題: PHP及MySQL安裝好預設編碼utf-8,但顯示在網頁上亂碼, phpmyadmin看到的內容也是亂碼?

解決之道: MySQL以utf-8編碼避免不必要的亂碼問題, 網頁顯示時設定以utf-8來顯示
第一行加入此程式碼, 即可

header("Content-Type: text/html; charset=UTF-8"); //設定頁面以utf8顯示

寫入資料庫時將Big5轉utf-8存入, 存檔後用phpmyadmin看內容仍然是亂碼,此時只要修改\www\phpMyAdmin\libraries\select_lang.lib.php 此檔案在// MySQL charsets map區段裡的'utf-8' => 'utf-8',改成'utf-8' => 'latin1',就可以在phpmyadmin內看到正確的內容了

刪除 MSN Messenger 的廣告

0 意見

這是我試過可行的方法, 8.5版是沒有問題的
引述重灌狂人的這篇文章,方法如下:

  1. 開啟 C:\WINDOWS\system32\drivers\etc (在 Windows 98/Me 的話則是 C:\Windows)。
  2. 用 Notepad 或其他編輯器開啟 hosts 這個檔案。
  3. 在 hosts 中加上
  4. 127.0.0.1 rad.msn.com 127.0.0.1 rad.live.com
  5. 存檔,收工。
這個方法是將原先連到 MSN 伺服器去下載廣告的連線改連到自己的電腦上。所以日後 MSN 換伺服器,則有可能失效。但比較簡單。
另一個方法則比較麻煩:
  1. 關閉 MSN Messenger 。
  2. 下載 Resource Hacker 。這是個免費的綠色軟體,而且有正體中文版本。
  3. 用 Resource Hacker 開啟 C:\Program Files\MSN Messenger\msgsres.dll 。怕失敗可以先備分。
  4. 去除主面版廣告:打開 4004-923-1033,搜尋 id=Atom(SSConstrainer) ,將前面的 layoutpos=top 改成 layoutpos=none 。改完後按上方的組譯儲存。
  5. 去除主面版底部搜尋欄,則打開 4004-923-1033,搜尋 idSearchContainer ,將上面的 layoutpos=bottom 改成 layoutpos=none 。改完後按上方的組譯儲存。
  6. 去除聊天對話廣告,打開 4004-920-1033 ,搜尋 id=Atom(adbannergutter) ,將前面的 layoutpos=bottom 改成 layoutpos=none 。改完後按上方的組譯儲存。
  7. 完成後,存檔,收工。
這個方法直接修改修改 MSN Messenger 程式的 layout ,我改好的 msgres.dll (8.1.0178.00),可以下載直接取代原先的檔案 。
PS. 除了這些,有一些不用動太多手腳就可以讓畫面變乾淨的方法:
  1. 去除資訊標籤:在工具→選項→資訊標籤 中,有個隱藏資訊標籤,勾選後就不會顯示資訊標籤了。
  2. 一些出現在連絡人最上面的訊息:最常出現的,應該是協助匿名客戶經驗改進計畫,只要點「目前沒有意願」,就不會再出現了。

 
Designed by: Newwpthemes.com | Bloggerized by Dhampire