到今天為止第一個php寫的網(wǎng)站已經(jīng)快要見亮了,中午后臺部分全部功能完成意味著以后做別的站可以拿來就用,不用再費太多精力編寫了,現(xiàn)在就簡單寫寫學習php的這一個月我遇到的主要問題。
問題1:環(huán)境搭配
php最經(jīng)典的組合當然是LAMP(Linux+Apache+MySQL+PHP)了,不過我沒有條件和精力弄Linux所以用Windows 2003代替Linux了,自己調試用,又不是做服務器,所以不要求性能足夠用了。
本身我的機器是Win2003+IIS+Framework環(huán)境能跑起來ASP和.net,并且裝有jdk+tomcat+oracle還能跑起來jsp,本打算不破壞這些環(huán)境再安裝apache和mysql,不過困難重重啊。。
于是放棄jsp環(huán)境,并且用ghost備份了asp環(huán)境,刪掉IIS后重新安裝PHP環(huán)境,環(huán)境還是很好搭的,在百度上輕易的找到教程照著安裝就可以Apache+PHP+MySQL+PHPMyAdmin,沒有安裝Zend,以后深入學習的時候再說吧,沒有研究明白多個網(wǎng)站的時候怎么存在不同的路徑運行在不同端口,也先不管了,現(xiàn)在80端口跑吧,環(huán)境調試好了以后備份了一個ghost,算是php環(huán)境成功搭起來了。
問題2:對utf-8編碼文件的標記BOM導致的頁面空行
這個問題以前在學習xhtml+css的時候遇到過,那時候是因為文檔聲明類型前面加別的代碼了或者沒有寫文檔聲明類型xhtml1.0卻用w3c的標準做頁面導致的,起初我以為也是把require寫在文檔聲明前面出的問題呢,后來反復調試發(fā)現(xiàn)不是這么簡單,后來上百度搜索了很多關于require引起空行的問題,有一個牛人提到了要在dreamweaver里面ctrl+j把utf-8編碼的BOM去掉,當時也不懂BOM是啥,說去掉就去掉吧,確實解決問題了,這算是把這一關過去了,不過后面還有utf-8的問題呢,也是跟這個有關系。
問題3:php下checkbox的取值問題
這是我發(fā)現(xiàn)php唯一一個不方便的地方,不像asp那樣,所有同名的checkbox的值存成一個集合,php只能取同名里最后一個checkbox的值,在做多數(shù)據(jù)where in (aa,bb,cc,dd)查詢的時候很不方便,只能用js+一個hidden input的方法實現(xiàn),雖然有點小麻煩,不過不是大問題,很容易就解決了,上網(wǎng)查了一下也確實只有這么才能解決!
問題4:Access庫轉到MySQL的問題
畢竟數(shù)據(jù)庫已經(jīng)設計好了,再在PHPMyAdmin中建一次表也很麻煩,索性找個軟件來直接轉庫,還不錯讓我找到各爆好用的軟件,不過全英文界面,名字沒記住,明天去公司看看再發(fā)上來,庫很輕松的轉過來了,但是我手很賤,看到MySQL里面的data文件夾下有和我建的數(shù)據(jù)庫一樣名字的文件夾,我以為有這個文件夾就不用建庫倒庫了,一時興起把沒用的都刪掉了,問題來了PHPMyAdmin連不上庫了,這個倒是好解決,重裝了一次MySQL解決問題,可是我沒備份就換回ASP環(huán)境,再換回來的時候MySQL出大問題了,重裝都不管用了,上百度一頓神搜,最終csdn的牛人給了答案“把libmysql.dll和php5ts.dll考到system32下”,解決問題。
問題5:NTFS權限問題。
這個問題ASP上也出現(xiàn)過,不過換在PHP環(huán)境就沒多一份心往這方面想,所以足足憋了我一上午,發(fā)現(xiàn)這個問題是在朋友的服務器上,前一天喝酒正好認識一個哥們兒遇到php建站的問題了,接著酒勁我就裝了一把,說我php多牛多牛啊,知道的我才學2星期,哈哈哈,第二天就給人家解決問題吧,牛都吹出去了也不能不管人家,連上服務器一看原來是安裝phpcms的時候遇到了MySQL問題安裝無法繼續(xù)進行了,百度上一頓神搜找到問題關鍵了是NTFS權限問題,這就好解決了,加個Internet來賓用戶就解決了,估計自己以后也會遇到這問題,所以早遇到比晚遇到強,關鍵時候知道怎么回事兒!
問題6:Cookies讀寫問題。
這個問題應該不是很大的問題,只不過當天馬上下班了,沒有來得及解決,第二天很輕易的就搞定了,剛開始學習肯定語句掌握的不多,以為$_COOKIE["xxx"]既可以讀也可以寫呢,用到這兒的時候才發(fā)現(xiàn)部對路子,上網(wǎng)隨便一搜“php cookies 寫入”答案就來了,setcookie即可,真簡單啊。
問題7:php分頁。
用ASP的時候SQL語句也沒深入研究,根本就不知道limit這回事兒,我說以前看淘寶、百度的分頁上有0 20、20 20這樣的參數(shù)傳遞呢,都是干分頁用的,稍補了一堂SQL課程問題迎刃而解,頁數(shù)判斷那里原理都一樣就沒當成問題,一路綠燈解決戰(zhàn)斗!
問題8:創(chuàng)建utf-8文件寫入中文亂碼問題,問題2的后續(xù)問題。
一開始就把這個功能做好了,只不過沒用中文測試,后來做到有中文的地方發(fā)現(xiàn)這里不靈了,哎呀那個頭疼啊,這個問題收拾了我好幾天,一直沒解決,為了不被這個問題困擾,所以就先用英文寫入把這里條過去了,昨天必須得解決這里了,所以就硬下頭皮整吧,還是BOM的簽名問題,以下均為我自己理解,不知道對不對,Windows環(huán)境識別UTF-8與ANSI文件靠的是UTF-8文件前的一個叫做BOM簽名的東西,這個東西普通的文本編輯器是看不到的 xEF xBF xEE好像是這三個16進制字符,反正是三個東西,問題2里毛病也是他們三個整出來的,UTF-8在Windows下雖然要用這三個家伙區(qū)分,在php下確實沒有用的東西,要不問題2里面為啥要去掉BOM簽名呢,怪就怪我在做ASP的時候遇到過同樣的UTF-8文件寫入中文亂碼問題,所以就留了個心眼,先在網(wǎng)上艘了一個UTF-8文件在php寫入的函數(shù),里面就把那三個討厭的東西加進去了,哎呀我去,這就是聰明反被聰明誤,這頓調試就是不行啊,后來我也是恍然大悟,把這三個家伙去掉了,問題解決了,那個暢快啊。
還有很多小問題就不細說了,比如$的轉義符是chr(36)啊,SQL中的關鍵詞from啊(在asp中不是關鍵詞),時間函數(shù)的使用(巨方便,比ASP的用著舒服)。
經(jīng)過將近一個月時間的學習發(fā)現(xiàn)php確實很強大,而且很好學,前提是有一門web服務器端語言基礎,感覺有很多ASP上需要重點考慮的問題在php上已經(jīng)不是問題了,都替你想好了,而且php速度很快,沒有用Zend我就能感覺出比ASP+Access要快很多了,jsp和.net在速度上根本不能比的,代碼也很簡捷,除了我說的checkbox稍微麻煩一些,其他地方代碼都要比asp精簡,好多地方都很靈活,比如變量的定義,$開頭的變量讓命名少了很多約束,很多要用連字符把字符串和變量連起來使用的地方因為有$的存在都不用連字符了,因為$代表變量,所以不用特別強調,總之php是很好很強大,真的很適合做網(wǎng)站呢。
下一步學習在熟悉語句語法的同時,要加強自己面向對象的思想,php真正的強大還在后面呢!
經(jīng)典論壇交流: http://bbs.blueidea.com/thread-2875047-1-1.html
本文鏈接:http://m.95time.cn/tech/program/2008/6018.asp
出處:藍色理想
責任編輯:bluehearts
◎進入論壇網(wǎng)絡編程版塊參加討論
|