2011-07-06 84 views
1

我是一般PHP的新手和web開發人員,但已經是一名程序員5年了。我試圖用記事本從頭開始在我自己的網站上編輯我的PHP文件和我的服務器的WAMP。我能夠在Safari,Chrome和Firefox中查看我的文件,但IE瀏覽器(我們都知道IE並不是最棒的),因爲我使用了一些HTML5的東西。無論如何,我有一個包含我的文件頭,菜單和頁腳的文件夾。我有一個包含這些文件的index.php文件,並且可以很好地顯示它們。在頁面的中心是我想要的內容。爲了保持網站的清潔,我製作了不少文件夾,並在其中放置了相同的index.php文件(例如Profile/index.php,Forums/index.php等)。我做到了這一點,所以當我去localhost/mysite/profile /時,它向我展示了我想要使用的模板。但是,有一個更好的方式來使用該模板,並有一個更好的方式來擁有乾淨的網址。我目前沒有託管這個網站,所以我不知道我是否可以訪問htaccess文件(甚至不知道它是誠實的,只是看到它提到),但我很好奇有文件夾結構(每個菜單項一個文件夾)是正常還是正常練習?我也很好奇,如果有一種方法可以使用index.php,而無需每次進行小改動時都複製粘貼。任何幫助,將不勝感激。謝謝。需要php模板幫助和乾淨的url幫助

回答

0

複製index.php文件並不是我真正想要的方式。這似乎很混亂,還有其他一些選擇。如果你希望網址乾淨和搜索引擎友好,你應該看看url rewriting using .htaccess

你說你不確定你是否有一個服務器「訪問htaccess文件」,但如果你可以上傳文件,你總是可以上傳.htaccess文件 - 問題在於Web服務器並不總是使用它們,或者可能沒有啓用mod_rewrite。在這種情況下,您可以使用http://www.example.com/index.php?u=/Profile/foo的格式(這也是我處理url重寫的首選方式)。

在你的index.php中,請確保閱讀mod_rewrite傳遞的請求的url參數,並在你需要的文件夾中包含任何文件。實際上,你甚至不需要「物理」文件夾結構,你可能想用類或類似的東西來實現它。 (我相信我會)。

我真的會推薦你去看看一個好的PHP框架,例如CodeIgniter。即使你決定從頭開始編碼所有東西,你仍然可以學到很多關於URL處理,數據庫,MVC模式,模板引擎,數據庫抽象層和PHP編碼的最佳實踐。

+0

是的,我不知道我要在哪裏託管它將允許我訪問該文件。我知道可能有其他網站可以讓我訪問它,但因爲它只是爲了好玩,它會在一些便宜的主機上,我還不確定。但是如果允許我訪問它,我會保留該鏈接供將來使用。謝謝。 – XstreamINsanity

+0

是的,我旁邊的同事使用codeigniter(剛開始真的)說,有很多框架已經做了我想做的事情。但是,因爲我是一名工程師,所以我總是嘗試從頭開始做一些事情,以便更好地理解它。另外,由於某些原因,我對Eclipse不太瞭解。我可能需要休息一個星期,以便我可以花一些時間來學習它和CodeIgniter。謝謝。 – XstreamINsanity

+0

你真的不需要Eclipse來使用C​​I。我自己並不是一個大的Eclipse粉絲。我真的瞭解你對於從頭開始做什麼感覺 - 這並不意味着你不能看看別人是如何解決問題的,對嗎?在我仔細觀察了一些框架之前,我花了幾年的時間做了很多艱難的工作 - 這真是一個頓悟。我希望你會喜歡它,就像我一樣:) –

0

你的答案是htaccess文件,就是「文件夾結構」轉換爲$ _GET值的

例如,

,如果你在website.com/Profile/是你可以寫一個htaccess線將轉換到這website.com/index.php?folder=Profile

的htaccess:

RewriteEngine on 
RewriteRule ^/(.*)/$ index.php?folder=$1 [NC,L,QSA] 
RewriteRule ^/(.*).html$ index.php?folder=$1 [NC,L,QSA] 
+0

那麼,就是這樣,我想要的文件夾結構就像website.com/profile/。理想情況下,假設我想查看userid的1234配置文件,我希望URL爲website.com/profile/1234/。 – XstreamINsanity

+0

重複這個過程

 RewriteEngine on RewriteRule ^/(.*)/(.*)/$ index.php?folder=$1&id=$2 [NC,L,QSA] RewriteRule ^/(.*)/(.*)/.html$ index.php?folder=$1&id=$2 [NC,L,QSA] 
PvdL

1

如果您在模板計劃我建議用現有的平臺像SymfonyZend Framework,Smarty。 Smarty可能是最容易實現的,它幾乎是純粹用於模板的。鑑於Symfony和Zend Framework是大包裝,有很多花裏胡哨的東西。

如果我打算做純模板,我會看看Smarty。我現在使用Zend Framework來處理當前所有的PHP項目,但它的學習曲線非常陡峭。你的前幾個星期會令人沮喪。

就網址而言,.htaccess可能是首選方法(至少在我的書中)。 Zend Framework和Symfony都有一種默認的URL編寫風格,看起來像http://host/controller/action,其中控制器將是配置文件論壇。您不一定非得看到host/profile/index,它可能是host/profilehost/profile/edit,其中編輯是正在執行的操作。

+0

是的,我需要調查htaccess一些,我正在閱讀有人給我上面的鏈接。但是,就模板而言,這些軟件包實際上做了什麼?意思是,這些文件的內容看起來像使用模板。我使用模板的想法就像在ASP中有一個模板,他們有的佔位符或類似的東西。但是,我相信引擎處理html輸出,但我真的不知道。我會看看那些軟件​​包。謝謝。 – XstreamINsanity

+0

Smarty將是您最簡單的純模板,因爲它不需要您實現MVC結構(儘管我強烈推薦它)。它的標籤允許你保存內容,使用變量,並循環收藏以及許多其他的東西。 – ashurexm

+0

嗯,我現在正在閱讀Symfony的指南,因爲有些東西引起了我的注意。這只是一個長時間的閱讀。 :) – XstreamINsanity