2014年2月16日 星期日

2014年2月14日 星期五

PHP 4.x -> 5.x 實戰分享(1) PHP的tag不相容性[出錯率:極低]

本文問題發生率: 極低(通常並非蓄意)
PHP 5跟PHP 4在解析的tag的容錯能力不一樣,在PHP 4的時候以下的寫法是可以正常執行不會出錯。
<?php if(ture){ ?>
hi
<?php;}?>
為什麼呢?因為第二組php標籤其實被當成<? php;}?>來解釋。
php應該是被當成常數但是php找不到php這個常數就直接忽略掉了

所以前人在不看警告的狀態下,就留下這樣的錯誤讓我在PHP 5上解析了很久的
PHP Parse error:  syntax error, unexpected end of file in /var/www/html/titan/product02.php on line 492
可是明明這一行就在298行....Orz

這個錯誤應該只是某位先人手誤忘了打空格,但是這邊特別跟大家提醒一下
在php的tag的<php後方跟?>的前方一定要記得留空格,才是正確的,雖然php對於?>前面要不要留空格有很強的容錯的能力,但是請不要跟自己開這種玩笑,這個bug至少糾纏了我一個多小時。

2014年2月13日 星期四

PHP 4.x -> 5.x 實戰分享(0) 緣起

因為PHP 6在2012年的難產,所以許多PHP6的特性開始加入到PHP 5.4.x,之後PHP6的計畫就被取消了。所以PHP 5.4.x跟PHP 4論起差異你可以當成是PHP6跟PHP4之間這麼大。可想而知多少PHP4的程式碼在PHP 5.4.x以上的版本會有水土不符了?

註: PHP目前的穩定更新版是PHP 5.5.x & PHP 5.4.x(bug & security fixes)。
      PHP 5.3.x 目前僅剩下有安全問題時才會更新(security fixes only)。
      PHP 5.6在撰文時還在Alpha 2估計2014年上半年內應該會正式發行了。
註: PHP 6當初的開發目標是完全以Unicode來開發取代以往的ASCII,可是後來發現改用Unicode的記憶體使用代價太大,所以被終止了。



PHP雖然相對C這位老大哥是很年輕的語言,PHP是1995年出現的,但是台灣開始紅起來大概是在1998~2000年間開始有一堆php的書上市,2000年時還有大名鼎鼎的 PHP聖經出版,作者彭武興[註1]還免費在其個人網站上放了一份電子版供網友免費閱讀,這在當時的中文電腦書出版業中是少數的自由開放先驅。

註: PHP聖經作者網站已經不見了,目前電子版可於這邊找到  http://www.csie.nctu.edu.tw/~tsaiwn/php/php_bible/php.wilson.gs/bible/

小江先生負責一套叫做TWE-Commerce 2.x(以下簡稱TWE-C)的購物車維護,這套購物車是基於OSCommerce(以下簡稱OSC)的2.x架構改出來的東西,這個東西當初(2007/4)是智邦的網站設計團隊拿了TWE-C的套件修修改改交到了現在小江先生的手上的,而網站也是就這樣放著經過了智邦跟另外一位我沒見過的先輩維護過後才到我手上的,智邦的網站上一直就很神奇的繼續以PHP 4.4.9的環境運行這套目前看起來像是古董的TWE-C 2.x,一直看到2.x而沒有確定的版本是因為台灣人都很喜歡程式碼把一些版權聲明給拿掉,好像怕別人知道這是從別的東西抄來用,而不是自己的。

以上都是碎碎念,重點是當時OSC的版本開發是在PHP4完成,但是因為PHP3的特性很多人還在用所以很多語法是接近PHP3的,TWEC在這個基礎上把許多語法給改善到PHP4的特性,並且把TWEC給轉化為utf-8資料庫版本,才避免了big5版上萬馬奔騰的亂象,但在當下的時空也就只有PHP4。

當小江先生把這購物車移到Amazon EC2 的上面的時候跑了PHP 5.4.23的時候就網站就崩潰了,在小江先生準備將一系列把TWEC轉移到PHP 5.4的轉換心得記錄下來,希望眾多有需要將PHP4的程式碼轉換到PHP5的朋友可以有可以一些可以參考的資料少走許多彎路,也希望各位網友有其他高明或是實用的意見就算是dirty hack也能分享小江先生,小江先生也會一併納入本系列,希望大家都能順利轉換到新的PHP 5網站上囉。

因為小江先生是轉換TWE-C所以本系列也主要針對TWE-C/OSC 2.x的轉換來做心得分享。

註: http://www.php.net/migration54 提供了升級到5.4的官方建議,非常推薦大家去看看。

本文初版於 2014/02/14 情人節 祝各位網友情人節愉快~

2014年2月9日 星期日

skype去廣告(免安裝外掛, 免修改skype) hosts大法!

剛剛參見估狗大神, 估狗大神開示

%SystemRoot%\system32\drivers\etc\hosts 檔案內增加一行
0 rad.msn.com
就可以有清爽的skype視窗了,當真是一棒敲醒夢中人阿。
做完了, 我想回去睡了(喂!

EC2/Linux下建議的Bash 中文環境參數設定 .bash_profile

Amazon EC2的image內的Linux因為不是自己安裝的,所以有些中文化的環境
參數並不會當成預設值設好。

所以本文主要解決兩個問題:

1. 預設中文化UTF8訊息顯示
2. 預設時區設為Taipei時區, 以顯示台灣時間而非見鬼的UTC格林威治時間
echo export LANG=zh_TW.UTF-8>> .bash_profile
echo export TZ=/usr/share/zoneinfo/Asia/Taipei>> .bash_profile

打完收工!!
PS.歡迎提供其他建議的.bash_profile設定

2013年8月8日 星期四

TeamViewer 解開五分鐘疑似商業使用限制

前言:本文適用版本8含以前

常常在使用TeamViewer的人可能會發現某些電腦上的TeamViewer每次連線使用TeamViewer都只能有五分鐘的使用時間,並顯示警告訊息疑為商業使用。

會出現5分鐘的連線時間限制,通常是違反了免費使用的許可協議,情況大致上分為2種,原因如下:
其一,是你可能在安裝TeamViewer英文原版的時候選錯了授權方式,一定要選擇personal才能使用免費授權。
其二,就是你的使用方式被TeamViewer伺服器判定為疑似商用。
出現上面兩種情況,TeamViewer才會出現針對商業授權試用的5分鐘連接限制。

1的解法很簡單,移除重裝改成個人使用授權
2就比較麻煩了,因為只要你的id不變,那麼不買授權的狀態下永遠只能使用五分鐘就斷線了
所以這時候你若真的是欲[個人]免費使用,那就是要想辦法更換ID了。

更換ID的方法如下:
1. 關閉TeamViewer.exe(右下角TeamViewer圖示->右鍵-->結束TeamViewer)
2. 停止TeamViewer 8服務
    I. [我的電腦]-->[滑鼠右鍵]-->管理
    II. [服務與應用程式]->服務------>找到TeamViewer 8服務-->停止服務
     (如果沒找到就略過這步)
3. 刪除註冊表
[HKEY_CURRENT_USER\Software\TeamViewer]
[HKEY_LOCAL_MACHINE\SOFTWARE\TeamViewer]
4. 更改你的網卡Mac Address
5. 刪除TeamViewer的安裝目錄內的所有檔案
6. 到官方網站下載最新的TeamViewer重新安裝(記得選個人使用授權)

安裝完後,ID應該就會變成新的,這樣就不會受到五分鐘的連線限制了


參考來源:

2012年11月29日 星期四

Radio Code Word: 無線電字母表

在無線電通訊中,由於通訊品質無法保證的狀況常常會遇到無法正確告訴對方自己要表達的字母數字組合,於是有了這個國際間通用的字母以單字來代表的方式,讓雙方不會混淆了容易搞混的單字例如M跟N就會以Mike跟November來分別代表,這樣就算通訊品質糟糕或是發音不標準的狀況也能降訊息傳遞錯誤的發生機會大幅度降低,直到現今這個方法依然廣泛使用,並不局限於無線電通訊使用,好萊塢電影中主角透過手機報車牌號碼也是依照這個方式來傳遞,迅速而又不會有疑義。

今天公司中同事用手機撥打國際電話為了傳達給對方自己的定位編號(類似: F32TK0M),就產生了諸如T跟P無法確認M跟N無法確認,如果能夠告知對方Tango跟Mike那馬上就能搞定囉!!

大部分的英語為母語的國家,都是能夠聽得懂這套無線電字母表達的方式的,尤其是航空公司的服務人員,我想應該也都受過這些訓練的,如果放在網頁上面,或是印刷出來很並不適合隨身攜帶,所以我利用了點時間給這位準備要出國的同事做了一個手機版本的圖片,這樣放在手機裡頭就很方便忘記得時候可以快速查詢了喔。

數字的念法只有4跟9是跟平常不一樣,其他都是一樣的喔!!

圖片我也放置在這邊供大家下載使用囉!!

並且結尾附上純文字版本方便大家使用囉


























純文字版:
Radio Code Word
A
Alfa
N
November
0
Zero
B
Bravo
O
Oscar
1
One
C
Charlie
P
Papa
2
Two
D
Delta
Q
Quebec
3
Three
E
Echo
R
Romeo
4
FOWER
F
Foxtrot
S
Sierra
5
Five
G
Golf
T
Tango
6
Six
H
Hotel
U
Uniform
7
Seven
I
India
V
Victor
8
Eight
J
Juliett
W
Whiskey
9
NINER
K
Kilo
X
X-ray
Made
  by Jason C.
   
cojad.com
L
Lima
Y
Yankee
M
Mike
Z
Zulu