發表文章

目前顯示的是 3月, 2016的文章

將 CSV 檔案加上 UTF BOM 讓它可以在 Windows 被 EXCEL 正確的開啟沒有亂碼的問題

圖片
將 CSV 檔案加上 UTF BOM 讓它可以在 Windows 被 EXCEL 正確的開啟沒有亂碼的問題 在 UTF-8 文件中放置 BOM 主要是微軟系統的習慣。但是真的沒有必要帶拉!!!! http://stackoverflow.com/questions/2223882/whats-different-between-utf-8-and-utf-8-without-bom According to the Unicode standard, the BOM for UTF-8 files is not recommended: 圖片和內文不太相關 下面提供一種在 windows 上面,政治正確的解法。 XDXD // ======================================================== // 產生現在的秒數 $time_string = date("YmdHis"); // 寫入 utf8 with BOM function writeUTF8File($filename,$content) {     $f = fopen($filename, 'w');     fwrite($f, pack("CCC", 0xef,0xbb,0xbf));     fwrite($f,$content);     fclose($f); } $f = 'uploads/private/'.$time_string.'.csv'; $fdir = 'uploads/private/'; // 檔案不存在就先建立檔案 if (!file_exists($fdir)) {     mkdir($fdir); } writeUTF8File($f,$csv); echo 'CSV 輸出完成,請點選 連結 下載。 '; // ========================================================

取得 mysql 資料表中的「欄位名稱」以及「欄位註解」

圖片
取得 mysql 資料表中的「欄位名稱」以及「欄位註解」 在 MySQL 資料庫中,宣告資料表的過程,可以一併把欄位名稱寫在 COMMENT 選項中,如果在程式可以把這個 COMMENT 也抓出來配合欄位的名稱,可以產生自動把整個表 DUMP 出來成為一個 CSV 不就很方便。 圖片和內文不太相關 // ----------------------------------------------- $table='表格名稱'; // 資料庫中表的欄位抬頭資訊 $col_sql = "SELECT COLUMN_NAME,COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '$table';"; $col = runSQL($col_sql); // var_dump($col); // 資料欄位 $sql = "SELECT * FROM `$table` WHERE 1;"; $row = runSQL($sql); // var_dump($row); $csv = ''; // 欄位名註解 //echo " "; for($i=1;$i<$col[0];$i++){ //echo $col[$i]->COLUMN_COMMENT.", ";  $csv = $csv.$col[$i]->COLUMN_COMMENT.", "; } $csv = $csv."\n"; // 欄位名稱 //echo " "; for($i=1;$i<$col[0];$i++){ //echo $col[$i]->COLUMN_NAME.", ";  $csv = $csv.$col[$i]->COLUMN_NAME.", "; } $csv = $csv."\n"; // 資料列取得欄位 //echo " ...

mysql 中文亂碼的避免及 php mysql pdo 宣告取用方式

圖片
Mariadb 和 Mysql 都會有亂碼, 只要它預設編碼還是在 latin 的時還是一直會發生. 所以改成 utf8 編碼是一個對於東亞語系的文字,會比較方便。 UTF8 的介紹請看 wiki https://zh.wikipedia.org/wiki/UTF-8 xxx_bin (區分大小寫) xxx_general_ci (不區分大小寫) Collation 每個字符集的排序規則 http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html 在 mysql 資料庫中有兩個編碼系統 UCS2 及 UTF8 utf8 使用 1~3 bytes ,帶有 65536 個組合的編碼 utf32 與 utf8mb4 是完整的的 unicode ,差異在 utf32 固定 4 bytes ,而 utf8mb4 則是彈性使用 1~4 bytes 。 utf8mb4 從 MySQL 5.5.3 (released March 2010). 開始提供 目前預設的編碼系統為 xxx_general_ci (default) 為了中文語系使用不要出問題,建議修正如下: ----------------------------------------------------- # 修正 mysql 的設定檔 [root@c7 my.cnf.d]# more /etc/my.cnf.d/my-huge.cnf  [client] default-character-set=utf8mb4 [code] default-character-set=utf8mb4 [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci # restart mysql service # 檢查系統的編碼變數 ---------------------------- [root@c7 my.cnf.d]# mysql -u root -p Enter password: MariaDB [(none)]> SHOW VARIABLES WHERE Variab...

PostgreSQL 9.4 in CentOS Linux 7 簡易安裝教學

圖片
PostgreSQL 9.4 in CentOS Linux 7 # 安裝下載 http://www.postgresql.org/download/linux/redhat/ # 安裝 REPO 來源檔 yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm  -y # 安裝主要資料庫程式 yum install postgresql94-server postgresql94-contrib -y /usr/pgsql-9.4/bin/postgresql94-setup initdb systemctl enable postgresql-9.4.service systemctl start postgresql-9.4.service # 裝好後所有的設定檔及紀錄檔都在 /var/lib/pgsql 這個目錄內 [root@c7 ~]# ls /var/lib/pgsql -la total 8 drwx------.  3 postgres postgres   36 Mar 23 09:27 . drwxr-xr-x. 70 root     root     4096 Mar 23 09:27 .. drwx------.  4 postgres postgres   48 Mar 23 09:27 9.4 -rwx------.  1 postgres postgres  267 Mar 23 09:27 .bash_profile # 確認帳號 [root@c7 ~]# id postgres uid=26(postgres) gid=26(postgres) groups=26(postgres) # 切換使用者,並且登入系統設定 [root@c7 ~]# su - postgres -bash-4.2$ psql template1 psql (9.4.6) Type "help" for help. # 建立一個使用者為 mtchang ...

使用 SNMPD 的 TRAP(異常情況) 功能來觸發管理機制,以 UPS 不斷電系統的自動關機為範例

圖片
使用 SNMPD 的 TRAP(異常情況) 功能來觸發管理機制,以 UPS 不斷電系統的自動關機為範例 這篇文章主要說明,當你的 UPS 如果發現 AC(市電)斷電了,我該如何呼叫機器關機勒? 在各 UPS 的管理工具理,都有提供管理工具讓你設定在斷電後快快關閉電腦,但是如果一次要對大量的機器可能就需要付點費用,或是使用其他的方式達成。此文提供透過 UPS 的 SNMPTRAPD 在符合條件的 MIB 資訊被觸發時,就透過接收到的資訊傳遞給負責處理的程序。 介紹 SNMP  ------------ 首先我們需要先了解何謂 SNMP 通訊協定,可以參考底下這篇文章 http://www.netadmin.com.tw/article_content.aspx?sn=1209100018 安裝軟體 ------------ # Linux mint or ubuntu 的安裝 apt-get install snmp snmpd libsnmp-base libsnmp-dev snmp-mibs-downloader -y # Linux CentOS 的安裝 yum install net-snmp net-snmp-agent-libs net-snmp-utils -y systemctl enable snmptrapd.service  在 /etc/snmp/snmptrapd.conf  可以看到預設的設定檔 這個設定可以在 'snmptrapd.conf(5)' 有詳細的說明如何設定 snmptrapd 設定 SNMPTRAPD 可以接收觸發的封包 ------------------------------------ 可以參考官方網站的說明 http://www.net-snmp.org/wiki/index.php/TUT:Configuring_snmptrapd # ----------------- # 修改設定檔 /etc/snmp/snmptrapd.conf # ----------------- # 這個是我參考官方網站後改寫的 /etc/snmp/snmptrapd.conf 範例 mint snmp # cat /etc/snm...