簡體   English   中英

需要 php 模板幫助和清理 url 幫助

[英]Need php template help and clean url help

我一般是 PHP 和 web 開發的新手,但已經做了 5 年的程序員。 我正在嘗試使用記事本從頭開始在我自己的網站上工作,以編輯我的 PHP 文件和我的服務器的 WAMP。 我可以在 Safari、Chrome 和 Firefox 中查看我的文件,但不能在 IE 中查看(我們都知道 IE 不是最好的),因為我正在使用一些 Z6BFF62B10D884FB77428CFE168CD78 的東西。 無論如何,我有一個包含文件夾,其中包含我的 header、菜單和頁腳的文件。 我有一個 index.php 文件,其中包含這些文件並可以正常顯示。 在頁面的中心是我想要的內容。 為了嘗試保持干凈的網址,我創建了很多文件夾並將相同的 index.php 文件放在那里(例如 Profile/index.php、Forums/index.ZE1BFD762321E409CEE4AC0B6E84196 等)。 我這樣做了,所以當我轉到 localhost/mysite/profile/ 時,它向我展示了我想使用的模板。 但是,必須有更好的方法來使用模板和更好的方法來獲得干凈的 url。 我目前沒有在任何地方托管這個網站,所以我不知道我是否可以訪問 htaccess 文件(老實說,我什至不確定它是什么,只是看到它提到過),但我很好奇文件夾結構(每個菜單項一個文件夾)是正常還是可以的做法? 我也很好奇是否有一種方法可以使用 index.php 而不必每次進行小改動時都復制和粘貼它。 任何幫助,將不勝感激。 謝謝。

如果您打算使用模板,我建議使用現有平台,例如SymfonyZend FrameworkSmarty Smarty 可能是最容易使用的,而且它(幾乎)純粹是為了模板。 而 Symfony 和 Zend Framework 是大包,有很多花里胡哨。

如果我要做純模板,我會看 Smarty。 我現在幾乎所有當前的 PHP 項目都使用 Zend Framework,但它的學習曲線相當陡峭。 你的前幾周會令人沮喪。

就 URL go 而言, .htaccess可能是首選方法(至少在我的書中)。 Zend Framework and Symfony both have kind of default URL writing style that looks like http://host/controller/action where controller would be Profile or Forums . 您不一定必須看到host/profile/index ,它可以是host/profilehost/profile/edit ,其中 edit 是正在執行的操作。

復制 index.php 文件並不是我想要的 go 的方式。 它看起來很亂,還有其他一些選擇。 如果您希望網址干凈且搜索引擎友好,您應該真正看看url 使用 .htaccess 重寫

你是說你不確定你是否會有一個“訪問 htaccess 文件”的服務器,但是如果你可以上傳文件,你總是可以上傳 .htaccess 文件——問題是 web 服務器不是總是使用它們,或者可能沒有啟用 mod_rewrite。 在這種情況下,您可以獲取格式為http://www.example.com/index.php?u=/Profile/foo的網址(這也是我處理 Z572D4E421E5E6B9BC11D815E8 的首選方式)。

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

我真的建議你 go 看看一個好的 PHP 框架,例如CodeIgniter 即使您決定從頭開始編寫所有代碼,您仍然會學到很多關於 url 處理、數據庫、MVC 模式、模板引擎、數據庫抽象層和 PHP 編碼的最佳實踐。

您的答案是 htaccess 文件,將“文件夾結構”轉換為 $_GET 值

例如,

如果您在 website.com/Profile/ 中,您可以編寫一個 htaccess 行,將其轉換為 website.com/index.php?folder=Profile

訪問:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM