需要php模板帮助和清理网址帮助

时间:2011-07-06 17:12:01

标签: php templates clean-urls

我是PHP和Web开发的新手,但已经是程序员5年了。我正在尝试使用记事本从头开始在我自己的网站上编辑我的PHP文件和WAMP用于我的服务器。我可以在Safari,Chrome和Firefox中查看我的文件,但不是IE(我们都知道IE不是最好的),因为我正在使用一些HTML5的东西。无论如何,我有一个Includes文件夹,用于保存我的标题,菜单和页脚的文件。我有一个index.php文件,包含这些文件并显示它们。在页面的中心是我想要的内容。为了尝试保持干净的URL,我制作了很多文件夹并将相同的index.php文件放在那里(例如Profile / index.php,Forums / index.php等)。我这样做是因为当我去localhost / mysite / profile /时它向我展示了我想要使用的模板。但是,必须有一个更好的方法来使用模板和更好的方法来获得干净的网址。我目前没有在任何地方托管这个网站所以我不知道我是否可以访问htaccess文件(甚至不确定它是什么,只是看到它提到),但我很好奇有文件夹结构(每个菜单项的一个文件夹)是正常的还是正常的练习?我也很好奇是否有一种方法可以使用index.php,而不必每次进行小的更改时都复制并粘贴它。任何帮助,将不胜感激。感谢。

3 个答案:

答案 0 :(得分:1)

如果您打算模板化,我建议使用现有平台,例如SymfonyZend Framework,Smarty。 Smarty可能是最容易上手的,而且(几乎)纯粹是为了模板化。而Symfony和Zend Framework是一个包含大量花俏的大包装。

如果我要做纯粹的模板,我会看看Smarty。我现在使用Zend Framework来完成我目前所有的PHP项目,但它有一个相当陡峭的学习曲线。你的前几周将是令人沮丧的。

就URL而言,.htaccess可能是首选方法(至少在我的书中)。 Zend Framework和Symfony都有一种默认的URL编写风格,看起来像http://host/controller/action,其中控制器是 Profile 论坛。您不一定要看到host/profile/index,它可以是host/profilehost/profile/edit,其中edit是正在执行的操作。

答案 1 :(得分:0)

复制index.php文件实际上并不是我想去的方式。看起来很乱,还有其他一些选择。如果您希望网址清晰且搜索引擎友好,您应该查看url rewriting using .htaccess

你说你不确定你是否会有一个“访问htaccess文件”的服务器,但如果你可以上传文件,你也总是可以上传一个.htaccess文件 - 问题是Web服务器并不总是使用它们,或者可能没有启用mod_rewrite。在这种情况下,您可以使用http://www.example.com/index.php?u=/Profile/foo格式获取您的网址(这也是我处理网址重写的首选方式)。

在index.php中,只需确保读取mod_rewrite传递的请求的url参数,并在文件夹中包含所需的任何文件。实际上,您甚至不需要“物理”文件夹结构,您可能希望使用类或类似的东西来实现它。 (我相信我会)。

我真的建议你去看一个好的PHP框架,例如CodeIgniter。即使您决定从头开始编写所有代码,您仍然会学习很多关于url处理,数据库,MVC模式,模板引擎,数据库抽象层和PHP编码的最佳实践。

答案 2 :(得分: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]