2016年4月28日

2016年4月26日

[快樂生活] 從科學一窺快樂:提升幸福感的小訣竅

圖片來源:happify

這是由happify所製作的一個關於「快樂(Happiness)」的資訊圖表,內容相當豐富,將其中的部分簡單譯成中文,進行部分修改,同時加入一些個人經驗和大家分享。

若想看完整圖表請點選此連結。若有侵犯版權煩請來信告知(Please contacting us for copyright infringement)。

2016年4月21日

憂鬱,躁鬱,傻傻分不清楚─認識躁鬱症

圖片來源:everyday Health

在眾多的心理疾患當中,我覺得躁鬱症(Bipolar Disorder)是最容易被大家所誤解的,因為大家常常會直接透過字面的意思,就認為xxx是不是有躁鬱症。像是我們常常聽到,「我最近心情好差喔,我是不是有躁鬱症?」、「他最近脾氣有點暴躁耶,是不是躁鬱症發作阿?」甚至八點檔也常常用躁鬱症這個詞,到底躁鬱症是什麼呢?

2016年4月18日

[軟體分享] 簡單X快速X免費 影片音量放大軟體 - Video Volumn Booster

圖片來源:Letasoft

最近錄了一些影片,可是因為手機收音的效果比較不好,使得影片的音量都太小,在網路上找了找,有些軟體只能讓我轉1分鐘以內否則就要收費(Audio Amplifier Pro);有些軟體轉完後音量雖然變大了,可是畫質也變差了(Xmedia recode);windows movie maker雖然也可以用來放大音量,可是放大的效果不夠。最後終於找到了這款免費簡單又好用,而且速度又快,專門用來調整影片音量的軟體─Video Volume Booster

2016年4月10日

[快樂生活] 如何避免陷入負面想法當中?

圖片來源:happify

這是由happify所製作的一個關於如何避免陷入負面想法中的資訊圖表,內容相當豐富實用,希望能簡單翻成中文並和大家分享(並非逐字逐句翻譯,當中亦包含個人例子)。

若想看完整圖表請點選此連結。若有侵犯版權煩請來信告知(Please contacting us for copyright infringement)。

2016年4月7日

如何在php中將陣列(array)轉成JSON格式---json_encode中文utf8

圖片來源:Jonathan Weatherhead

在php中我們常常會用陣列來處理資料,但在網頁資料傳遞的過程中,我們常常需要將資料從一端傳到另一端(例如,從伺服器端傳到客戶端),這時候我們就需要一些共通的格式來方便包裝資料和解讀資料,而JSON格式就是現在相當常用的一種(如果還不清楚什麼是JSON格式,可以參考這篇:[筆記] JavaScript中物件(object)和JSON格式的轉換)。

那麼,我們就來說明一下,要怎麼在php中將資料從陣列轉換成JSON格式吧!

當陣列索引值和元素都是英文的情況---json_encode



我們先建立一個陣列如下:


在資料都是英文的情況下,要將陣列轉成JSON格式非常的容易,只要使用php內建的函式json_encode就可達到,像是這樣:


這時候你就可以看到我們原本陣列的資料已經被轉換成JSON格式了:


程式範例
<?

$data_array_en = [
 "1" => "Apple",
 "2" => "HTC",
 "3" => "Samsung",
 "4" => "ASUS",
 "5" => "Sony"
];

$data_json_en = json_encode($data_array_en);

echo $data_json_en;

?>

當陣列當中包含中文的情況


看起來要把陣列轉成JSON似乎非常的容易,然而,當我們的資料包含中文,就會碰到一些問題...。

我們同樣的先建立一個陣列:


然後一樣直接透過json_encode來轉換資料:


這時候,會發現轉出來竟然變成一堆亂碼...


這時候我們可以怎麼做呢?

解法

這時候不必慌張,解法是這樣子的,如果中文會讓json_encode出現亂碼,那就先將資料透過urlencode讓字串當中不會有中文出現,再轉成JSON格式,最後再用urldecode把資料轉回成中文格式。

程序如下:

如果不清楚foreach的使用,可參考[筆記] PHP & MySQL 透過foreach來呼叫出陣列的值


這時候,即使我們的資料裡面有包含中文字,一樣可以順利轉換成JSON:


程式範例
$data_array = [
 "北部" => "臺北",
 "北部" => "桃園",
 "中部" => "台中",
 "南部" => "台南",
 "南部" => "高雄",
 "東部" => "花蓮",
];

// 先利用urlencode讓陣列中沒有中文
foreach($data_array as $key => $value){
 $new_data_array[urlencode($key)] = urlencode($value);
}

// 利用json_encode將資料轉成JSON格式
$data_json_url = json_encode($new_data_array);

// 利用urldecode將資料轉回中文

$data_json = urldecode($data_json_url);

echo $data_json;

包裝成function來使用吧!


如果很常會使用到把陣列轉成JSON的話,我們就把它包成一個Function來使用吧!只需要把function拷貝到程式當中,在參數的地方帶入欲轉換的成JSON的陣列就可以了!


程式碼
$data_array = [
 "北部" => "臺北",
 "北部" => "桃園",
 "中部" => "台中",
 "南部" => "台南",
 "南部" => "高雄",
 "東部" => "花蓮",
];

function array_to_json($sel_array){
 foreach($sel_array as $key => $value){
  if(is_string($key) || is_string($value)) {
   $new_array[urlencode($key)] = urlencode($value);
  }
 }

 return urldecode(json_encode($new_array));
}

echo array_to_json($data_array);

延伸閱讀

[筆記] JavaScript中物件(object)和JSON格式的轉換

[筆記] PHP & MySQL 透過foreach來呼叫出陣列的值

參考資料

小灰狼php筆記:解決PHP JSON 中文亂碼的問題

2016年4月6日

2016年4月5日