顯示包含「PHP」標籤的文章。顯示所有文章
顯示包含「PHP」標籤的文章。顯示所有文章

2012年8月17日星期五

PHP Fog 免費雲端網存空間使用心得

上次介紹PaaS (Platform as a Service)模式的AppHarbor - AppHarbor - 新一代雲端開發平台使用心得,它完美支援ASP.NET技術,但可惜就不支援普遍的PHP語言。

所以上網找一找同類型的免費服務,PHP的選擇其實都不算多的,但都有好幾個選擇,其中兩間都有免費的服務,我認為不錯的是 PHP FogPagoda Box
最後選擇了PHP Fog原因是Pagoda Box的MySQL DB只提供免費10MB,而PHP Fog就有20MB,另外Pagoda Box亦有1GB Bandwidth上的限制。

PHP Fog同樣是以GIT去提交檔案,所以故之然同樣有Collaboration和Version Control的優點。
跟上一篇文章一樣,由零開始去教大家如何用這個新一代的雲端開發平台。
我會使用 TortoiseGit 和我熟悉的WordPress 做範例。

2012年5月14日星期一

Aptana Studio 3 安裝 PHP xDebug

自從Aptana Studio 3重新加入PHP開發功能後,我幾乎已經完全用它取代了Eclipse PDT。
Aptana Studio 3很多地方都要比PDT或另一免費的PHP IDE - Netbeans強,但到目前為止Aptana唯一失色的地方就是沒有PHP Debugger。

幸好Aptana團隊自3.0版本開始十分積極,差不多一個月有一次更新。預計v3.2.0版本就會支援Zend Debugger 和 xDebug了。
而PHP Debugger亦隨著nightly build公開下載,貼一下安裝攻略。

首先第一樣要做,當然是更新至Nightly Build的Aptana Studio 3,或者有人擔心用Nightly會不穩定,但我親身試用了5個月Nightly Build,沒有任何問題,只是提示更新比較頻密而已。

安裝

  1. 前往Preferences,打開Install/Updates,選擇Available Software Sites
  2. Add,Name位置輸入Aptana Studio Nightly Updates,Location輸入http://preview.appcelerator.com/aptana/studio3/standalone/update/nightly/,緊記要選取CheckBox才算是完成,之後按OK退出Preferences
  3. 前往Help,按Check for updates,此時應該會見到3.2.0.xxxx版本了,之後安裝完成,重新開啟Aptana(很重要!)。
  4. 然後前往Aptana的IssueTracker Sitehttps://jira.appcelerator.org/browse/APSTUD-769,下載Attachments - com.aptana.php.debug.site.zip,把它放到Aptana安裝目錄的plugins資料夾之中。
  5. 再次前往Preferences,打開Install/Updates,選擇Available Software Sites,按Add,Name位置輸入PHP Debugger,Location按Archive按鈕,選取剛下載回來的com.aptana.php.debug.site.zip,跟之前一樣,要選取CheckBox,然後按OK退出,安裝完成,重新開啟Aptana
  6. 重新啟動後,可以打開Preferences/Aptana Studio/Editors/PHP,看看有沒有Debug選項,有的話就大功告成。

我自己是用xDebug的,其實設定上比Netbeans或其他商業IDE更要下點功夫,但都跟PDT大同小異。
至於怎樣設置xDebug,可以參考下文 : Configure Eclipse PDT / XDebug for PHP debugging

唯一要注意的是在Debug Configurations中,是否需要使用URL/Auto Generate? 又是否需要Path Mapping?
好像我的情況就要取消Auto Generate URL和自行設定Path Mapping了。

送上一些圖給大家參考一下吧。

2011年11月9日星期三

PHPExcel 效能提升%300方法

公司有一個schedule task是用PHPExcel去export一個Excel 檔案再發送給其他部門,一直困擾很久的問題是效能問題和失效問題。
雖然我已經優化PHP程式本身和在php.ini把最大執行時間和Memory Limit設定成一定數值:
max_execution_time =3600;
memory_limit = 1024M;

但這只是解決PHP程式有機會死於memory用量過多或execution time過久而已。

最後在宏宏網海中,找到答案。
原來PHPExcel有一項設定"setPreCalculateFormulas()",沽名思義,可以略省計算Cell中的Formula。
以我的情況,我最後會輸出約500 rows x 30 columns的Excel,沒有任何formula的話,把它設定成False,真實測試後,效能的確可以大大提升超過%300。
方法:
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->setPreCalculateFormulas(false);

2011年10月10日星期一

Ruby on Rails取代PHP?

每種Dev Language都會有一批死忠者,有部份人總不想與競爭者並存。
在遠古時代,已經有:
"C# Kill VB" ,
"PHP Kill Perl",
"PHP Kill ASP.NET",
"Python kill Java" 等等...多得可以做一串Array...

每次一有這類話題,雙方都會爭議得面紅耳熱,但當中不乏一些論點具參考性,所以我一般看完主文後,文章的Comments才是主菜。

這段時間又有一篇"Ruby on Rails kill PHP" - PHP needs to die. What will replace it?
Java vs Ruby on Rails vs PHP

PHPer當然大反撃喇。

其實我個人認為PHP先不要急推PHP6,最需要變一下的是PHP Logo和官網。
我一直都認為PHP的Logo很80年代感覺的,官網亦欠缺時代感。

2011年7月21日星期四

我的PHP IDE選擇 - PDT 3.0 & Aptana Studio 3

早前寫了一篇文說我對Aptana Studio 3.0.2很失望,是的,直到昨天都是一樣。
但今天Aptana出了新版本3.0.3,就版本號,理應是小更新,但Aptana一個小版號,所Fix的Bug是十分多,看看Release Notes就知道了。

修正了幾個很重要的Bug :
  1. PHP content assist for build-in constants and static
  2. No autocomplete proposals in incomplete HTML tags
  3. Add support for -webkit- properties in css content assist
  4. -moz- properties are not inserted correctly in CSS content assist
  5. PHP content assist for build-in constants and static
  6. No autocomplete proposals in incomplete HTML tags
  7. PHP Function Parameter/Argument Hinting

再次抱有希望測試一下,又真的改良很多。
之前軟件內很多奇怪的事都沒有再出現,HTML/CSS/JS/PHP的Code-Assist亦正常很多了。

而Eclipse又在上個月出了3.7版本(Indigo),但PDT的工作進度緩慢下,被Eclipse官方下架了。
但基於好奇心,我依照這裡的方法安裝了Eclipse 3.7 + PDT 3.0 milestones,實行互相比較一下。

HTML方面,Aptana始終都做得比較好,有Browser的兼容性指示。


Javascript & CSS方面
Aptana支援-moz和-webkit的,但PDT的就沒有了。而Javascript方面,兩者其實差不多,但Aptana在解釋部份比較詳細,Aptana又再加分。



PHP方面
PDT 3.0就做得好過Aptana,最主要是Aptana 3.0.3版都是依賴按"ALT+/"去叫出Code-Assist,但官方已預計3.0.4版會改成與PDT一樣

我沒有做很詳細的比較,只是針對我以前對Aptana的不滿去試用一下。
始終兩者的含Bug量都是能夠嚇死人,可見:
PDT Bug List
Aptana Bug List

所以暫時不用太計較,反正今次沒有的,下一版就可能會有,但我認為除PDT之外,Aptana終於令我有返信心,期待下一版本。

Aptana Studio 3
http://aptana.com/
另有官方Portable版本,在官網上沒有顯示出來的,把以下連結的X轉成版號就可以了。
例如
http://download.aptana.com/studio3/standalone/3.X.X/win/Aptana_Studio_3_Setup_Win_3.X.X.zip
轉成
http://download.aptana.com/studio3/standalone/3.0.3/win/Aptana_Studio_3_Setup_Win_3.0.3.zip

其實我試過很多不同的PHP IDE,商業的也有,如果是好的IDE,我都不介意花錢去買,但很可惜,收費的並不是好過Free的很多。
例如
PHP Designer,軟件本身有很多不必要的文字功能,3rd-party的軟件呼叫項目,Syntax highlight著色又不好。
PHPEdit,只是PHP Code-Assist做得好,但連HTML/JS/CSS的Code-Assist都沒有,雖然介面是最漂亮(用Office 2010 UI),但最慢的又是它。
Kodomo IDE - 是不錯的,但價錢是最貴,免費版本的又不可Debug。
而出名的NetBeans,我覺得是最差的一個,無論介面,功能上都是差。

反而最近一年才冒起的PHP Storm,我就認為是最完美的一個,應有的,都有了。

不是吹牛,這個PHP IDE測試平台,我玩了幾天。

2011年5月9日星期一

令我失望的Aptana Studio 3

在漫長的開發期間,每一個Beta Build都有試用,初時已經覺得問題多多,實在覺得當初不應該再期待。

3.0 Release版出來了,舊有問題依然,主要都是HTML/JS/CSS/PHP的code assist依然古古怪怪。
還是需要依靠手動"ALT+/"顯示出來,即使3.0.2 Nightly Build都一樣。
而Javascript的,document後竟然沒有getElementById()
HTML的,td的inline style中,竟然沒有text-align....玩了10分鐘已經覺得用回Eclipse PDT好過。

其實原本Aptana Studio 1.5版本時實在好好用的,可惜被2.0版本把PHP刪去,主力發展ROR,後期被Appcelerator這間公司收購,3.0版本又把PHP功能放回去,但做到不倫不類。

似乎還是放棄Aptana Studio好了。

2010年7月16日星期五

PHP for Android Apps

用PHP起Android手機上寫程式....我個人就唔睇好,玩下無妨,真係工作上的話,還是Native語言-Java最好。
而且有PHP基礎,要學Java都唔係咁難o者...
Open Source Android Apps for Developers: PHP for Android

PHPforAndroid.apk HOWTO install and test

2009年10月13日星期二

Aptana PHP Plugin停止開發~轉用PHP Designer 7

今天看到一直用的Aptana慢慢轉向商業化經營了...原本Domain是aptana.com,現在瓜分為.com和aptana.org for community plugins。最可惜的是Aptana已聲明PHP Plug-in停止開發 (見 Aptana PHP Plugin discontinued? ) ,會把現有的module移至Eclipse PDT。但我真的用不慣Eclipse系的IDE,可能我個人太Visual Studio向,用起Eclipse甚至Netbeans都覺得怪怪地。

唯有再看看其他PHP IDE有冇更新,有沒有更新至我要求的HTML + JavaScript Code Completion / PHP Code Hints等等。
我對工作上/興趣上的軟件要求很高,而且Programming的IDE更是我謀生工具,豈能兒戲。
我堅信 "工欲善其事,必先利其器。"的道理,無論軟件介面設計,Right-Click的menu command"就不就手"都有要求。

試過很多,比較出名的PHPEdit , PhpED , Zend Studio , Komodo IDE都試過,依然不稱心,主要都是不如Visual Studio無論HTML,JS,CSS都主面支援。

再試試PHP Designer 7,原來前幾天剛出新版,看ChangeLog見到這幾項,立即試試 :
New. JavaScript code completion
New. Support for JavaScript Object-oriented programming (OOP)
New. JavaScript code tip with extended information/documentation
New. Support for user-defined JavaScript functions
New. Support for user-defined JavaScript variables
New. Code Explorer for JavaScript
New. Jump to JavaScript declarations
New. Support for the JavaScript framework jQuery

試用過後,算是不錯,感覺很完整,無論HTML,JS,CSS,PHP的 Code Completion都做得不錯,但依然有半秒到Delay(即使我已set 0ms delay)。
介面都較接近返Visual Studio,不錯不錯。

Screenshots of phpDesigner 7
http://www.mpsoftware.dk/phpdesigner_screenshots.php

2009年10月8日星期四

OneFileCMS - 最簡單的CMS

這個叫OneFileCMS的東西,整個程式就是一個PHP File,我諗應該算是全世界最簡單的了。
http://onefilecms.com/

2009年10月7日星期三

PHP Comments Remover & Space Cleaner

一個免費的PHP Comments Remover,去PHP和HTML格式的Comment,另有去空白和內建obfuscator。
我試用過還不錯,用Universal Extractor後便是Portable版。

如果想進一步除去Line Break可以用用這個 PHP Code Cleaner and Indenter

Download PHP Comments Remover

2009年8月9日星期日

Portable Aptana Studio

Aptana Studio是一個十分好用的IDE,而且PHP Plug-in 比 Eclipse PDT還要好。即使大公司Sun上個月推出的NetBeans 6.7都不及Aptana,我始終還是用不慣Netbeans的介面,而且對HTML / Javascript /CSS的支援實在太弱,所以我寫PHP一直都用Aptana。對於支援HTML / Javascript /CSS方面,如Code Completion / Hints,Aptana甚至做得比Visual Studio 2008更好。

20090808_aptana-t.jpg

Aptana官方網站雖然有Zip版本Download,不過並不是Portable。
但只需要幾步就可以打造自己的Portable版本了,步驟如下:

2009年5月9日星期六

如何設定 SQL Server 2005 Driver for PHP

節錄於 邊做邊學 如何設定 SQL Server 2005 Driver for PHP 執行環境
雖然 PHP 提供了 mssql_* 函式,可用來存取 Microsoft SQL Server 資料庫,但實際效果經常不盡理想,尤其對較新版本 SQL Server 的支援常常慢了半拍。這對各自擁有廣大使用族群、且又經常需要以 PHP 存取 SQL Server 的開發人員來說,實在很困擾--直到微軟自己開發 SQL Server 2005 Driver for PHP。
使用 PHP 內建的 mssql_* 函式存取 SQL Server 資料庫常有許多問題,可能是中文變亂碼或不支援某些資料型別,尤其只支援到 SQL Server 6.5 (MSSQL Library 7.0 ),無法善用 SQL Server 2005/2008 的新功能。
為了讓 PHP 環境能有更好的 SQL Server 存取方式,微軟在 2007 年開始發展 SQL Server 2005 Driver for PHP ,這是 PHP 5 的擴充程式(extension ),能讓 PHP 程式讀寫 SQL Server 裡的資料。值得一提的是,微軟不僅公開釋出 SQL Server 2005 Driver for PHP 的二進位檔,也以 Microsoft Publlic License (Ms-PL )釋出 SQL Server 2005 Driver for PHP 原始程式碼。

更多 : http://msdn.microsoft.com/zh-tw/windowsserver/dd794783.aspx

2009年4月17日星期五

Essential PHP Techniques for Web Designer and Developers

睇完呢個網Desizn Tech , 介紹左廿多種PHP的東西是Web Designer和Web Developer都要識的,當然無所謂絕對。但到了今天,Web Application實在五花百門,無論是設計或者程式部份已經比以前複雜很多,要學的東西自然會多。
雖然近期ASP.NET MVC 1.0已推出,Silverlight 3.0又差不多說要Release。但我還是認為,我把時間花在PHP和jQuery會更幫到我工作。而jQuery是我覺得Designer或Developer都要學習的技術。

PHP
200px-php-logo.png
自從上年10月開始,工作轉寫PHP後,我好認同PHP是種好Flexible,好岩入門甚至Designer去學的一種語言,除左免費同資源多之外,PHP本身語法實在容易,假如你完全未接觸過Programming,只要你每天花幾小時去學,幾星期內已經學有所成。其實外國很多Web Designer都能寫基本的PHP,即使日後有機會接觸到PHP或者轉職做Programmer時,都不會臨急抱佛腳。其實PHP+MySQL拎資料都只是10行不到的Syntax,何不一試。

jQuery
logo_jquery.png
其實接觸jQuery都是這幾個月的事,看到連Microsoft都支持,而Visual Studio 2008更native support jQuery,用左幾個月,現在差不多9成工作都依賴jQuery。jQuery的Selectors實在太強,配合ASP.NET的GridView或Repeater使用都十分方便。其次就Ajax + Web Service / Page Method都是十分好用。除非必要,如果唔係我都會用jQuery的Ajax多過Microsoft的Ajax。jQuery其中一個好用亦是我最常用之處是Selectors配合eq可以十分輕易取得Dom中的資料,例如一個Grid模式的Table,要取得Table中第幾個TR中第幾TD中的innerHTML,jQuery幾隻字已經做到。在Web Designer方面,jQuery除左本身的effects有很多PlugInUI可以使用。幾乎不用什麼Java Script基礎都可以用得很好。在Javascript Framework來說,jQuery是最容易使用,亦是Documentation最齊,Sample最易明白的。

2008年11月7日星期五

PHP不是首選的Language

記得10年前左右我學VB6時,很多人說VB6學壞手勢,話學Delphi好,當然呢o的已經係歷史話題。但前排睇左幾篇Blog文,話PHP是次選語言,不會是初學者的首選,我都很同意,亦令我想起"學壞手勢"呢四隻字。

PHP的問題,其實在於太過寬鬆,好似近排我工作上是寫PHP就有很多令我出奇的情況。
疑問1:
<?php
$_SESSION['info_1'] = "1"; // assign value
$_SESSION['info_2'] == "2"; // compare value
?>

第一個Session很正常,只是assign "1"給info_1 ,但第二個Session沒出現Error卻很奇怪,不論是true或false,起沒有主體或不是condition情況下,卻Syntax成立,如果不小心打多一個"="符號,整個程式就已經錯誤。

疑問2:
<?php
$select = "SELECT login_id FROM user";
$rs = mysql_query($select);
$row = mysql_fetch_assoc($rs); //data reader pointer 在第一行
echo $row["login_id"]; //output : sam
// 100行code後
$select_pwd = "SELECT password FROM user";
$rs_pwd = mysql_query($select_pwd);
$row = mysql_fetch_assoc($rs_pwd); //示範:忘記之前已經使用$row
echo $row["password "]; //output password string: ASj89qa
?>

這段Code看似沒有問題,只是重用變數,但我卻奇怪為什麼PHP不搞好少少,雖然$row只是in-memory的data集合,但不論JSP或ASPX,這類DataReader/Datatable已經是一個物件,不用New而且在沒有關閉的情況下可以重用有點怪怪.(例如.NET datareader都要進行DataReader.Close() ; DataTable只要結構和第一次不同,都要重構一次。

疑問3:
Include/Require無限Loop...這個是人為問題,很多PHP程式都是這樣,鐘意Include library,function,variable,但Include之中再Include,多層Level的引用Class方式,我卻覺得只會一個亂字,雖然很多IDE可以Open Declaration,但係呢種手法我真係不感恭維。而且不同Folder,層層疊疊下真係頭都暈。
C.php有Function C
B.php include C.php 用Function C
但又會有A.php include B.php去Call function C.....

疑問4:
$varInt = 1;
$varString = "2";
echo $varInt.$varString; //Output : 12 (OMFG~)

全部都係是Dynamic Type,PHP不用設Data Type,無論你是什麼類型,都可以用於一個Variable上,但這正是"學壞手勢"的根源。為什麼一個看似Int的類型可以和String結合,這是不可能發生在C#上的。

其實還有很多奇怪地方都是出自PHP語法太過flexible,當然有好有唔好,好既就係可以好快咁寫到一個網頁程式,唔好既就係潛移默化了一些錯誤的觀念。

有幾個好網,很值得一睇,更加深入講解點解PHP不是一隻首選Langauge。
PHP ‘Good’ Practices
http://rubayeet.wordpress.com/2008/08/27/php-good-practices/
A simple ‘Gotcha’ in PHP
http://rubayeet.wordpress.com/2008/04/29/a-simple-php-gotcha/
PHP is a good second programming language(but never a first)
http://rubayeet.wordpress.com/2008/05/10/php-is-a-good-second-programming-language/
Is PHP a good first language?
http://codeutopia.net/blog/2008/05/01/is-php-a-good-first-language/

2008年2月21日星期四

Make PHP + Apache + Linux + MSSQL 2005 Work!

這幾個月都在寫PHP,因為要接上一手的爛攤子,主要都是使用PHP在MSSQL和MySQL之間交換資料。
公司在GoDaddy租了部行Fedora 7的dedicated server,自己絕對是對Fedora零經驗!!

誰不知原來Fedora 7 Default不會跟MSSQL的Extension,即使CentOS 5都是一樣。
公司有一個號稱"十年Programming經驗"的老派Programmer說Fedora Server不可以config 支援PHP 的web伺機器,就算我不太懂Linux都知佢吹水。
若果root access都可以改config,都不能安裝PHP,那我要dedicated server幹什麼?

所以我要做的就是安裝php_mssql的Extension,我原以為好像Windows IIS Server般簡單,以為修改一下php.ini,Reboot Apache 就搞定。

原來在Linux下,要重新compile過PHP...還要在SSH用Shell Command去操作....經過幾日研究,終於辛苦地安裝好,雖然網上都有一些教學,但對於好像我這雖然自稱Windows IIS + ASP.NET老手,但亦是Linux + PHP新手,在console行command line去執行步驟,何其痛苦,未必短時間可以完成,所以我重新打一次過程希望可以幫到其他人,CentOS都適用!

操作環境 : Apache/2.2.6 & Fedora core 7 or CentOS
PHP version : 5.2.4
所需軟件 : PuTTY Download : http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

1. 確認你的Apache和PHP已經可以正常運作後,首先開啟PuTTY,輸入你的Server Host 然後Protocol選擇 SSH,按Open。


2. 然後照PuTTY的指示去登入,需要注意的是:
-在第2和第5行輸入密碼時,PuTTY不會出現星號,你只需照樣用鍵盤輸入密碼後,按Enter即可。
-第4行的su 是切換至root login。
login as: ming
ming@202.19.110.29's password:
Last login: Wed Feb 13 20:38:31 2008 from 210.119.205.57
[ming@ip-202-19-110-29 ~]$ su
Password:
[root@ip-202-19-110-29 ming]#

3. 安裝RPMForge
前往 http://dag.wieers.com/rpm/packages/rpmforge-release/找最新的版本,然後輸入:
wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.fc3.rf.i386.rpm

按Enter,等執行完成後,再輸入:
rpm --install rpmforge-release-0.3.6-1.fc3.rf.i386.rpm

4. 以yum去install freetds,freetds-devel, php-devel , Development tools (Line By Line去按Enter執行)
yum groupinstall 'Development Tools'
yum install freetds freetds-devel –enablerepo=rpmforge
yum install php-devel

5. 用VI Editor去修改php.spec
vi /usr/src/redhat/SPECS/php.spec

- 如果找不到放在那裡的話,可以試試輸入updatedb 然後輸入locate php.spec找出位置。
- 如沒有php.spec的話,便下載php source rpm (一般檔案名稱都是以php-做開頭的)http://centos.mirrors.skynet.be/pub/centos/5/os/SRPMS/
wget http://centos.mirrors.skynet.be/pub/centos/5/os/SRPMS/php-5.1.6-15.el5.src.rpm
rpm --install php-5.1.6-15.el5.src.rpm

安裝完成後,再重覆這個Step直至成功用VI打開php.spec。

6.打開php.spec後,按[i] 進入INSERT Mode,然後在文件後半部份,你應該可以找到一行是以
"CFLAGS="做開頭的並把"-Wno-pointer-sign"這句刪除。
然後試試找尋"%package mysql" 或"%package pdo" ,當找到後,在這一行上方(記住是上方)加入:
%package mssql
Group: Development/Languages
Requires: php = %{version}-%{release}, php-pdo
Summary: A module for PHP applications that use the MSSQL database.
provides: php_database
BuildRequires: freetds-devel%description mssql
The MSSQL package contains a dynamic shared object that will add
support for accessing MSSQL databases to php.

然後按一下"Esc"退出Insert Mode
再按一下":"進入command並輸入"wq" 再按Enter。(wq = write & quit)

Step 7 :
重建php rpm
輸入
rpmbuild -bb /usr/src/redhat/SPECS/php.spec

請保持冷靜,在這時,極大機會會出現xxxx-devel Missing Dependency等error訊息。
如果是的話,可以輸入yum install xxx-devel 一個一個地去install。
把所有Dependency搞好後,切換至extension目錄:
cd /usr/src/redhat/BUILD/php-5.1.6/ext/mssql/

輸入以下去建立mssql module :
phpize
./configure –with-mssql
make
make install

Step 8:
就如Windows Server時一樣,修改php.ini。
和之前一樣,輸入"vi /etc/php.ini" 打開php.ini , 按[i] , 把"extension=mssql.so" 放進php.ini 的extension / module部份中,按[Esc],按":",按"wq"再Enter。
最後一刻就是要reboot apache server,輸入
"/etc/init.d/httpd restart"
這時在phpinfo() 應該已經可以看到MSSQL了。

Step 9:
還要再做多一點點功夫,就是修改freetds.conf 檔案,不知是否Window和Linux不同關係,我在這一步之前,搞了幾天都不能連接MSSQL =_="!!!
在Windows Server,我可以填進server,username,password至mssql_connect連接至SQL Server 2005 如
$db=mssql_connect('210.168.xxx.xxx:1234','usr','pwd');
但Linux Server就不可以,其實我都不肯定技術上是否真的不能,但我看過很多文章,理解為PHP是經FreeTDS連接至MSSQL,所以freetds.conf 必須有其設置。

首先,MSSQL Server 2005 或Express版都不可以用Default Port, 你需要設定Dynamic Port。在
Start Menu 的SQL Server Configuration Manager -> SQL Express Protocols -> TCP/IP properties -> IP Adresses -> IPAll -> Dynamic Port
輸入你的Port,如2468 etc. 謹記在你Server的Firewall 打開port 2468 和 把TCP/IP和NamePipes都設成Enable!

那麼最後一步就是用vi editor打開freetds.conf 修改,這次簡單得多,開啟後,加入:
[sqlserver2005]
host = 210.168.xxx.xxx
port = 2468
tds version = 8.0
然後照之前般儲存離開。要注意的是,不要把instance加入,如210.168.xxx.xxx/SQLEXPRESS , 直接輸入210.168.xxx.xxx就可以,因為要經Namepipes去存取instance.

最後的一步,測試!
$db=mssql_connect('sqlserver2005','usrxxxx','pwdxxxx');

成功!

PS: 打了很多字,很累,有任何問題,歡迎留言,我會看的!

2008年2月2日星期六

PHP 連接不到MSSQL Server 2005解決方法

這段時間的工作都是要寫PHP,我選擇了用NetBeans + PHP Plugin還不錯。而且或者我之前寫C# + ASP.NET關係,轉寫PHP其實沒有太大難度。

我需要做的程序很簡單,就是連接MSSQL Server把資料Sync (都是Insert而已)至另一個MySQL資料庫,但無論怎樣設定,PHP都不能連接MSSQL,並出現Error Message :
Warning: mssql_connect(): Unable to connect to server
即使我100%肯定已開啟PHP Extension,MSSQL的Dynamic Port都打開了,什麼防火牆等等都檢查一翻,還是一樣。

最後上網找找,看到有人說是因為ntwdblib.dll版本問題,但我的電腦已經安裝
PHP 5.2 / SQL Server 2005 Express SP2 / VS 2003 / 2005 / 2008
照計系統元件都不太可能是舊版本,深信是其他問題...

但最後差不多放棄時,就檢查一下電腦中的ntwdblib.dll,的確是舊版本7.00.xxx (汗...)
需要的是8.00.xxx , 那我下載新版本8.00.xxx取代所有的,一切就正常了~

Download ntwdblib.dll Version:8.00.194
http://es.dll-download-system.com/docman/n-dlls-not-system-/ntwdblib.dll/details-2.html

2008年1月15日星期二

Top 60 PHP IDE & Editor List

近期工作上要接手一個PHP Project,老實說,我對PHP全無興趣....PHP可以做的,我ASP.NET都可以做,
而我愛C# / VB語言多過PHP...

真是要學多一種語言,我會選擇近似C#的Java都未到PHP...
不過冇辦法,始終都是工作~

上網狂找商業或免費的PHP IDE軟件,最後試用了很多,我的要求只是想好像Visual Studio 般有Syntax Suggestion,其他都不太重要~
最後我在Eclipse PDT 和NetBeans 6.0 + PHP Plugin中選擇,因為我覺得這兩個比很多商業的更好,而且兩者都是Java高位的IDE,掌握工具後,或者日後真的學習Java都有幫助,不過兩者中最後都是選擇NetBeams 6.0 + PHP Plugin,整個集成環境最近似Visual Studio。
很適合新手,而以下就是我找到的PHP IDE,大家可以自己試試。

這4個我覺得免費又不錯的~
Eclipse PDT
http://www.eclipse.org/pdt/
NetBeans 6.0 IDE PHP Plugin
http://php.netbeans.org/
Aptana Studio 1.0
http://www.aptana.com/
PHP Development Studio v2.0
http://www.joomlatwork.com/products/free_products_for_joomla/php_development_studio_2.0.html

以下是轉貼自php-editors.com
Editor Name Version License Platform/OS Rating
 NuSphere PhpED 5.0 Commercial
Windows
Linux
5/5
 PHP Edit 2.10 Commercial
Windows
5/5
 PHP Designer 2005 3.0.6 Commercial
Other
Windows
5/5
 ActiveState Komodo 3.5 Commercial
Other
Windows
Unix
Linux
Other
5/5
 Maguma Workbench 2.6 Commercial
Windows
Linux
Mac
5/5
 Bluefish 1.0 Other
Unix
Linux
Mac
5/5
 emacs 21 Freeware
Windows
Unix
Linux
Mac
Other
5/5
 NuSphere Nu-Coder 1.4 Commercial
Other
Windows
5/5
 Dreamweaver 8 Commercial
Windows
Mac
Other
5/5
 TSW WebCoder 2005 2005 Commercial
Other
Windows
5/5
 Maguma Studio Pro 1.3.X Commercial
Windows
4/5
 Maguma Studio Free 1.1.0 Freeware
Windows
4/5
 PHP Editor by EngInSite 3 Shareware
Commercial
Windows
4/5
 PHP Eclipse 1.06a Freeware
Unix
Linux
4/5
 Xored:: WebStudio 0.3.4 Freeware
Windows
Unix
Linux
Other
4/5
 SciTE 1.53 Freeware
Windows
Unix
Linux
Other
4/5
 VS.Php Beta 3 Commercial
Other
Windows
4/5
 Macromedia HomeSite 5.5 Commercial
Windows
4/5
 Kate 2.2 Freeware
Linux
4/5
 TextPad 4.7.2 Freeware
Commercial
Windows
4/5
 Davor's PHP Constructor 1.0 Shareware
Commercial
Windows
4/5
 HTML-Kit 292 Freeware
Commercial
Windows
4/5
 VIM 6.1 Freeware
Windows
Unix
Linux
4/5
 PHP Expert Editor 2.5 Shareware
Commercial
Windows
4/5
 DzSoft PHP Editor 1.4 Shareware
Commercial
Windows
4/5
 Anjuta 1.0.1 Freeware
Unix
Linux
4/5
 Edit Plus 2.11 SR-2 Shareware
Commercial
Windows
4/5
 Quanta Plus 3.2.1 Freeware
Linux
4/5
 Zend Studio 5 Commercial
Windows
Unix
Linux
Mac
Other
4/5
 EngInSite Editor for PHP 2.2 Shareware
Commercial
Windows
4/5
 Pidela 0.1 Freeware
Windows
Unix
Linux
Mac
3/5
 PHP Side (Simple IDE) 0.4 Freeware
Windows
Unix
Linux
3/5
 EmEditor 4.0 Freeware
Shareware
Windows
3/5
 ConTEXT 0.97.4 Freeware
Windows
3/5
 Roadsend Studio 1.1.1 Commercial
Windows
Unix
Linux
3/5
 TruStudio 1.0.0. Freeware
Windows
Unix
Linux
Mac
3/5
 PHPMaker 3.2 Shareware
Commercial
Windows
3/5
 PHP backend generator 0.9 Commercial
Windows
Unix
Linux
Mac
Other
3/5
 Smultron 1.0.1 Freeware
Mac
3/5
 HAPedit 3.1 Freeware
Windows
3/5
 Svoi.NET - PHP Edit XP 4.0 Freeware
Windows
3/5
 tsWebEditor 2 Freeware
Other
Windows
3/5
 BBedit 7.0 Commercial
Mac
3/5
 BBedit Lite 6.1 Freeware
Mac
3/5
 Cooledit 3.17.7 3/5
 Nedit 5.3 Freeware
Unix
Linux
3/5
 PSPad 4.3.0 Freeware
Windows
3/5
 PHP Coder 3 Freeware
Windows
3/5
 AceHTML Pro 5 Shareware
Commercial
Windows
3/5
 Top PHP Studio v1.19.6 Shareware
Commercial
Windows
3/5
 jEdit 4.1 Freeware
Windows
Unix
Linux
Mac
Other
3/5
 SubEthaEdit 1.1.5 Freeware
Mac
3/5
 umdev 2004 Shareware
Windows
3/5
 Dev-PHP 3.0 Freeware
Windows
3/5
 Crimson Editor 3.60 Freeware
Windows
3/5
 PHP Processor 1.2 Shareware
Windows
3/5
 Arisesoft Winsyntax 2 Freeware
Windows
2/5
 SEG 1.0.1 Freeware
Windows
2/5