程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 簡單學習php遇到的主要問題

簡單學習php遇到的主要問題

編輯:PHP綜合

到今天為止第一個php寫的網站已經快要見亮了,中午後台部分全部功能完成意味著以後做別的站可以拿來就用,不用再費太多精力編寫了,現在就簡單寫寫學習PHP的這一個月我遇到的主要問題。

問題1:環境搭配

php最經典的組合當然是LAMP(Linux+apache+MySQL+PHP)了,不過我沒有條件和精力弄Linux所以用Windows 2003代替Linux了,自己調試用,又不是做服務器,所以不要求性能足夠用了。

本身我的機器是Win2003+IIS+Framework環境能跑起來ASP和.Net,並且裝有jdk+tomcat+Oracle還能跑起來JSP,本打算不破壞這些環境再安裝apache和MySQL,不過困難重重啊。。

於是放棄JSP環境,並且用Ghost備份了ASP環境,刪掉IIS後重新安裝PHP環境,環境還是很好搭的,在百度上輕易的找到教程照著安裝就可以apache+PHP+MySQL+PHPMyAdmin,沒有安裝Zend,以後深入學習的時候再說吧,沒有研究明白多個網站的時候怎麼存在不同的路徑運行在不同端口,也先不管了,現在80端口跑吧,環境調試好了以後備份了一個Ghost,算是PHP環境成功搭起來了。

問題2:對utf-8編碼文件的標記BOM導致的頁面空行

這個問題以前在學習xhtml+CSS的時候遇到過,那時候是因為文檔聲明類型前面加別的代碼了或者沒有寫文檔聲明類型xHtml1.0卻用w3c的標准做頁面導致的,起初我以為也是把require寫在文檔聲明前面出的問題呢,後來反復調試發現不是這麼簡單,後來上百度搜索了很多關於require引起空行的問題,有一個牛人提到了要在dreamweaver裡面ctrl+j把utf-8編碼的BOM去掉,當時也不懂BOM是啥,說去掉就去掉吧,確實解決問題了,這算是把這一關過去了,不過後面還有utf-8的問題呢,也是跟這個有關系。

問題3:PHP下checkbox的取值問題

這是我發現PHP唯一一個不方便的地方,不像ASP那樣,所有同名的checkbox的值存成一個集合,PHP只能取同名裡最後一個checkbox的值,在做多數據where in (aa,bb,cc,dd)查詢的時候很不方便,只能用JS+一個hidden input的方法實現,雖然有點小麻煩,不過不是大問題,很容易就解決了,上網查了一下也確實只有這麼才能解決!

問題4:Access庫轉到MySQL的問題

畢竟數據庫已經設計好了,再在PHPMyAdmin中建一次表也很麻煩,索性找個軟件來直接轉庫,還不錯讓我找到各爆好用的軟件,不過全英文界面,名字沒記住,明天去公司看看再發上來,庫很輕松的轉過來了,但是我手很賤,看到MySQL裡面的data文件夾下有和我建的數據庫一樣名字的文件夾,我以為有這個文件夾就不用建庫倒庫了,一時興起把沒用的都刪掉了,問題來了PHPMyAdmin連不上庫了,這個倒是好解決,重裝了一次MySQL解決問題,可是我沒備份就換回ASP環境,再換回來的時候MySQL出大問題了,重裝都不管用了,上百度一頓神搜,最終csdn的牛人給了答案“把libMySQL.dll和PHP5ts.dll考到system32下”,解決問題。

問題5:NTFS權限問題。

這個問題ASP上也出現過,不過換在PHP環境就沒多一份心往這方面想,所以足足憋了我一上午,發現這個問題是在朋友的服務器上,前一天喝酒正好認識一個哥們兒遇到php建站的問題了,接著酒勁我就裝了一把,說我php多牛多牛啊,知道的我才學2星期,哈哈哈,第二天就給人家解決問題吧,牛都吹出去了也不能不管人家,連上服務器一看原來是安裝PHPcms的時候遇到了MySQL問題安裝無法繼續進行了,百度上一頓神搜找到問題關鍵了是NTFS權限問題,這就好解決了,加個Internet來賓用戶就解決了,估計自己以後也會遇到這問題,所以早遇到比晚遇到強,關鍵時候知道怎麼回事兒!

問題6:CookIEs讀寫問題。

這個問題應該不是很大的問題,只不過當天馬上下班了,沒有來得及解決,第二天很輕易的就搞定了,剛開始學習肯定語句掌握的不多,以為$_COOKIE["xxx"]既可以讀也可以寫呢,用到這兒的時候才發現部對路子,上網隨便一搜“PHP cookies 寫入”答案就來了,setcookIE即可,真簡單啊。

問題7:PHP分頁。

用ASP的時候SQL語句也沒深入研究,根本就不知道limit這回事兒,我說以前看淘寶、百度的分頁上有0 20、20 20這樣的參數傳遞呢,都是干分頁用的,稍補了一堂SQL課程問題迎刃而解,頁數判斷那裡原理都一樣就沒當成問題,一路綠燈解決戰斗!

問題8:創建utf-8文件寫入中文亂碼問題,問題2的後續問題

一開始就把這個功能做好了,只不過沒用中文測試,後來做到有中文的地方發現這裡不靈了,哎呀那個頭疼啊,這個問題收拾了我好幾天,一直沒解決,為了不被這個問題困擾,所以就先用英文寫入把這裡條過去了,昨天必須得解決這裡了,所以就硬下頭皮整吧,還是BOM的簽名問題,以下均為我自己理解,不知道對不對,Windows環境識別UTF-8與ANSI文件靠的是UTF-8文件前的一個叫做BOM簽名的東西,這個東西普通的文本編輯器是看不到的 xEF xBF xEE好像是這三個16進制字符,反正是三個東西,問題2裡毛病也是他們三個整出來的,UTF-8在Windows下雖然要用這三個家伙區分,在PHP下確實沒有用的東西,要不問題2裡面為啥要去掉BOM簽名呢,怪就怪我在做ASP的時候遇到過同樣的UTF-8文件寫入中文亂碼問題,所以就留了個心眼,先在網上艘了一個UTF-8文件在PHP寫入的函數,裡面就把那三個討厭的東西加進去了,哎呀我去,這就是聰明反被聰明誤,這頓調試就是不行啊,後來我也是恍然大悟,把這三個家伙去掉了,問題解決了,那個暢快啊。

還有很多小問題就不細說了,比如$的轉義符是chr(36)啊,SQL中的關鍵詞from啊(在asp中不是關鍵詞),時間函數的使用(巨方便,比ASP的用著舒服)。

經過將近一個月時間的學習發現php確實很強大,而且很好學,前提是有一門web服務器端語言基礎,感覺有很多ASP上需要重點考慮的問題在php上已經不是問題了,都替你想好了,而且PHP速度很快,沒有用Zend我就能感覺出比ASP+Access要快很多了,JSP和.Net在速度上根本不能比的,代碼也很簡捷,除了我說的checkbox稍微麻煩一些,其他地方代碼都要比ASP精簡,好多地方都很靈活,比如變量的定義,$開頭的變量讓命名少了很多約束,很多要用連字符把字符串和變量連起來使用的地方因為有$的存在都不用連字符了,因為$代表變量,所以不用特別強調,總之PHP是很好很強大,真的很適合做網站呢。

下一步學習在熟悉語句語法的同時,要加強自己面向對象的思想,PHP真正的強大還在後面呢!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved