2010/12/23

[PHP] 用 mb_substr 切割中文字

一般使用字串切割, 可用 substr
遇到有中文字的時候, 請改用 mb_substr, 並設定好 encoding

mb_substr($content,0,40,"UTF-8")

解決PHP substr切割中文字問題
mb_substr 字串分割

2010/12/15

[PHP] PHP 日期格式轉換

時間格式轉換常會用得到, 記錄一下, 以免又忘了
$date = '2010/12/15 22:28';
$date = date('Y-m-d', strtotime($date));


結果: 2010-12-15

由日期字串或是由 mysql 讀來的 datetime 資料都可以如此做轉換

2010/12/03

[ReportViewer] 如何在報表加入參數

在 MS ReportViewer 顯示動態傳入參數的方法

Code Behind:

Dim paramList As New Generic.List(Of ReportParameter)
paramList.Add(New ReportParameter("ReportParameter1", "參數值"))
Me.ReportViewer1.LocalReport.SetParameters(paramList)

ReportViewer:

需加入對應的參數名稱, 以便在報表中顯示
文字方塊可用 Expression 來變更想要顯示的資料

="設定參數值: " & Parameters!ReportParameter1.Value

[PHP] PHP 在 IIS 使用 MySQL 連線逾時 Time Out 解決方法

通常在本機連資料庫, 我們都是設定 localhost, 即可順利連線

但今天在測試主機環境 WinServer 2008 + IIS7 + PHP + MySQL
結果在連線時一直出現 500 的錯誤訊息

用 cmd 來執行 mysql 確認帳號及密碼都沒錯, 能使用的資料庫名稱也沒錯
我確定使用者訊息這邊都沒錯...但為什麼還會 time out 呢?

在詢問 Google 大神後, 有網友建議把 localhost 改成 127.0.0.1 來做主機連線
試過此方式後, 呼...終於連上了! ^^

快點記錄一下, 以免日後遇到又忘了怎麼處理

2010/11/14

使用 Expression Web 開啟 PHP 檔案時, 文件編碼跳掉的問題

Expression Web 4 支援 PHP intellisense 真的很棒, 而且可以直接用虛擬伺服器瀏覽執行結果
但是目前有遇到開啟檔案編碼常會跳來跳去, 這個問題實在很困擾, 讓我不得不用其他 coding 工具

我遇到的問題用以下步驟,圖示說明可能清楚一點

1. 在 Web 4 建立新 PHP 文件 (這個時候是 UTF-8 的編碼文件)


2. 在文字編輯器確認編碼, 顯示正常, 是 UTF-8



3. 在 Web 4 關掉文件, 再重新開啟, 問題就來了, 原來的中文已經變亂碼

如果我不存檔關掉文件, 再用其他文字編輯器開啟, 還是正常的 UTF-8 編碼
但是如果開啟原檔直接在 Web 4 存檔後, 就變成 ANSI 編碼的文件了


4. 以下是在文字編輯器開啟的結果, 這就不是我要的結果


要判斷編碼有沒有跑掉, 現在大概看字體就可以看得出來了 (請看在 Web 4 開啟的文件字型)
這個問題應該是軟體處理開啟檔案時發生的, 不知道有沒有什麼解決方案?

註: 如果含有 meta tag 註明 Content-Type 是 utf-8, 則開啟/儲存都沒問題

2010/11/12

[PHP] 在 php 寄送 mail 需開啟 openssl 模組

今天在 php 寫支用 Gmail 寄信的程式, 結果發現 SMTP 連線失敗
問了 G大神, 原來是需開啟 openssl 模組就可以解決
快點趁還記得的時候, 做一下筆記, 不然又忘了

變更 php.ini 檔, 將以下行前的註解拿掉就搞定囉
extension=php_openssl.dll

延伸閱讀:
php安裝openssl的方法
如何利用 Gmail 的SMTP 發信(使用PHPMailer)

2010/11/10

Install Zen Coding on Notepad++

Zen Coding 是一個可以加快 HTML CSS coding 的外掛程式

需要的工具:


Notepad++
Zen Coding plugin for Notepad++

more support download list

在 Notepad++ 的安裝方式:

解壓縮會得到 NppScripting/ 及 NppScripting.dll 檔案

將它們複製到 Notepad++ 安裝目錄下的 plugins 資料夾, 再啟動 Notepad++ 即可


 Zen Coding 在 Notepad++ 中的使用快速鍵

[DevTools] Zen Coding - generating HTML faster!

今天意外發現加速 coding 的工具: Zen Coding

可以用類似 CSS 選取器的方式來快速建立 HTML 程式碼

例如:
ul#menu>li.item*3

這樣的 code 可以快速建立出以下結構, 這樣可以省下很多 key in 的時間~
(可惜...html 在 blog 被改寫了, 呈現不出原始 code, 只好看下方影片吧)

用說的不如用看的, 感受一下...


Zen Coding v0.5 from Sergey Chikuyonok on Vimeo.

目前支援許多開發的 IDE 及文字編輯器: Visual Studio, NetBeans, Eclipse, Notepad++ 等等

現在已將手邊常用的開發工具加上 Zen Coding 外掛, 有空再來貼安裝擷圖

2010/11/02

[Flash AS3] navigateToURL 連結

import flash.net.navigateToURL

Syntax:
public function navigateToURL(request:URLRequest, window:String = null):void

request 需要使用 new URLRequest(url)
window 可用的字串: _self, _blank, _top, _parent

例:
import flash.net.URLRequest;     // 需使用 URLRequest 函式
import flash.net.navigateToURL;

btnGotoUrl.addEventListener(MouseEvent.CLICK, gotoUrl);
function gotoUrl(event:MouseEvent):void {
    navigateToURL(new URLRequest("http://devmanna.blogspot.com/"), "_blank");
}

2010/10/26

[PEAR] 如何安裝 PEAR 套件 pear install

繼上篇 安裝 PEAR 函式庫 後, 最需要就是安裝相關套件 packages

安裝指令: pear install [PACKAGE-version]
在網站找到的套件名稱, 在 Easy Install 處即可找到安裝指令


註: 在安裝完 PEAR 之後, 記得執行 pear.bat 檔, 註冊環境變數, 即可直接在命令鍵入 pear 的指令 (可鍵 pear list , pear help 測試結果)

[PHP] 在 Windows 下安裝 PEAR 函式庫

在 Windows 下安裝 PEAR 函式庫步驟

1. 在 命令提示字元系統管理員身分執行 (務必用管理員身分,否則寫入權限不足會導致安裝失敗)

2. 至安裝 php 的資料夾 (例: C:\php), 裡面已有 PEAR 資料夾 (過去我是用解壓縮方式安裝)
裡面已存在一個 go-pear.phar 檔
鍵入指令: php go-pear.phar

出現提示: Are you installing a system-wide PEAR or a local copy?
(system|local) [system]:


使用預設值 (system), 直接按 Enter, 將顯示所有會安裝的資訊

出現提示: 1-12, 'all' or Enter to continue:

使用預設值 (all), 直接按 Enter 開始安裝

出現提示: Would you like to alter php.ini? [Y/n]

鍵入 y 更新 php.ini 的資訊 (主要是 include_path 更新)

2010/08/23

Android .apk MIME Type

Filename extension     .apk
Internet media type     application/vnd.android.package-archive
Type of format     package management system, file archive
Container for     software package

Reference: Wikipedia - APK (file format)

2010/08/02

[PHP] 在 Windows 環境下 PHPUnit 安裝及 NetBeans 整合

以前從來也沒有 Test Driven Development 的概念
自從接觸微軟的技術後, 參與了不少場的研討會, 漸漸接觸 TDD 的知識
我想不管是任何程式語言, TDD 的發展好像愈來愈盛, 在軟體工程視為不可或缺的一環

Ruddy 老師曾說過: 測試過的程式, 才是可以相信的程式

的確, 不管工程師是誰, 是小小助理, 還是經驗老道的工程師, 只要是沒有測試過的程式, 它的可信度不會是 100%

最近又接觸回久久沒碰的 php, 心血來潮開始找好用的編輯器
說真的, 經過 VS IDE 的工具後, 有 intellisense 真的是幫助很大, 不用常常記一堆指令或去翻查工具書, 加快程式編寫速度, 不需要一字一字完全自己 key 出來

可惜的是 VS 不支援 php, 就算可以用 vs.php 來顯示語法顏色, 但已經不敷使用 (那跟一般文字編輯器的功能沒什麼兩樣)
而 Expression Web 雖然支援 php, 還有 code hint, 但是在 unicode 支援上總是卡卡的

近期搜尋一些免費又實用的 IDE, 有網友特推 eclipse 跟 NetBeans, 兩樣也都試過, 我的選擇是 NetBeans...因為有 GUI 介面的 unit test 整合使用

2010/07/01

2010/06/30

[Silverlight] 取得文件路徑/參數/檔案路徑

使用 HtmlPage 需匯入命名空間: System.Windows.Browser

取得網頁路徑: HtmlPage.Document.DocumentUri.ToString()

取得參數: HtmlPage.Document.QueryString["param"]



取得 Silverlight 應用程式路徑: Application.Current.Host.Source.AbsoluteUri.ToString()

2010/06/12

[iPhone] How To Make An iPhone App.


iPhone 4 is coming up soon. Would you like to develope some iPhone apps on your own? Below is a useful resource I found recently~ Hope this helps!

Learn how to develop an iPhone app that people will buy even if you never programmed before!

2010/05/15

[Silverlight 4] 列印功能

1. 引入 namespace
System.Windows.Printing

2. 建立 PrintDocument
3. 建立對應 Event
  • BeginPrint
  • EndPrint
  • PrintPage - e.PrintVisual (指定列印目標物件), 確認 e.HasMorePages (是否有多頁)
4. 最後指定 PrintDocument 物件 Print 的文件名稱
Print("MyDocument")

2010/05/06

[ASP.NET] 轉換 ArrayList 至字串陣列

VB:

Dim str() As String = arrList.ToArray(GetType(String))

C#:

string[] strings = (string[])arrList.ToArray(typeof(string));

2010/05/03

[.NET] Bitmap to byte array

byte[] bytes = (byte[])System.ComponentModel.TypeDescriptor.GetConverter(bmp).ConvertTo(bmp, typeof(byte[]));

參考網址: Bitmap to byte array

2010/04/27

[ASP.NET] Forms 登入驗證

命名空間
System.Web.Security

驗證
FormsAuthentication.RedirectFromLoginPage(username, true)

登出
FormsAuthentication.SignOut()

查證是否驗證
User.Identity.IsAuthenticated

ASP.NET MVC (在 Controller 的 Action 前加 Authorize 屬性)
[Authorize]
e.g.
[Authorize]
public ActionResult Index() { return View(); }



相關資料:

[ASP.NET] 類別中讀取 Session

匯入命名空間
Imports System.Web.HttpContext

在類別中使用Session
Current.Session("sessionName")