是否可以创建没有任何文件的子页面?
我是PHP的新手。我写了一些JS来为我的项目制作AJAX请求,并且它运行良好,但我不知道如何将其转换为PHP。是否可以创建没有任何文件的子页面?
我准备的布局类似如下:
- mainLayout.php,
- userLayout.php,
- offerLayout.php,
在这些文件中有一些PHP和构建HTML页面的MySQL部分。
在阿贾克斯很容易很多用户只使用一个页面,并用数据替换一些div之间进行导航......
但一个巨大的负的是,你不能有一个地址引用用户配置文件或者要约(如mywebsite.com/user1
)。
现在,当我使用PHP我想实现相同的布局效果。
如何避免(甚至是动态的,当然它似乎是浪费内存IMO)创造了数千页像user1.php
,user2.php
,offer1.php
等
我不知道是怎么实现的效果在像example.com/user277373.php
这样的网站上,而不创建数千个文件,但只有一个模板。
两个解决方案,我看到的是要么你用GET来分析你的数据:
http://example.com/?data=1736861
,比访问它在$ _ GET变量:
$id = $_GET["data"];
($ id将是1736861 )
或者您使用的航班php扩展,这将看起来像这样:
Flight::route('/id/@id', function($id){
echo "ID: $id";
});
并且URL看起来像http://example.com/id/1736861。您也可以在飞行模块中使用多个变量。
我希望这有助于塞巴斯蒂安
您是否熟悉任何MVC框架?如果不是,我会强烈建议习惯于MVC设计范例。 MVC =模型视图控制器。从Wikipedia, a short excerpt:
- 模型存储被根据来自控制器的命令检索并在视图中显示的数据。
- 视图根据模型中的更改为用户生成新的输出。
- 控制器可以向模型发送命令以更新模型的状态(例如,编辑文档)。它也可以将命令发送到其关联视图以更改视图对模型的显示(例如,滚动查看文档的 )。
很多框架的关键部件(在几乎任何语言),两个是路由和模板。在使用路由系统时,您可以为每个加载的匹配特定路由的页面指定一个模板。例如,site.com/people/:id
其中':id'可以是URL中的任何值,并且可以配置为使用“person.html”作为HTML输出。请注意,“person.html”接收将动态填充内容的变量/数据,例如<h2>Hello, {{name}}</h2>
所以,澄清,site.com/people/252
,site.com/people/12
,site.com/people/5
,site.com/people/john
将所有符合site.com/people/:id
路由路径,其中:id
是动态的,您的系统将使用一个模板(其中指定),以显示所有数据。不要忘了,当路径路径被满足时,这只是步骤1.您可能需要采取:id
运行某些数据库查询并将该数据传递到模板中。
一个名为Slim的流行微型PHP框架可能是一个很好的起点。下面是它的处理途径和模板的方式文档: https://www.slimframework.com/docs/objects/router.html https://www.slimframework.com/docs/features/templates.html
修身通常与嫩枝,一个超级流行的PHP模板引擎使用。下面是其网站/文档:http://twig.sensiolabs.org/
如果这还不够,斯利姆拥有超级方便的第一个应用程序的演练,会告诉你的路线,数据库连接,模板:https://www.slimframework.com/docs/tutorial/first-app.html
希望此信息可以帮助您你的旅程 - 祝你好运!
太棒了!谢谢你的答案。我真的很感激,并会检查所有这些,看起来很棒。但我的问题也是关于重定向到另一个页面。我不知道是否有可能在纯粹的PHP。我可以在C#中用http listener实现它,我想我可以用nginx编辑配置文件或其他任何东西,但我找不到任何有关它的信息。例如,当有人输入任何错误,并且服务器没有找到正确的uri时,它会给你404错误和ofc它可以返回类似echo'Typed'的东西。$ uri.'doesn't exist'。这怎么可能? – Michalaq
这正是我想要达到的效果:) – Michalaq
你的第一个例子是site.com/people/:id是我想要的,但是我想我的服务器上会放置文件夹'people'。动态创建并基于示例,但仍会创建并占用空间。我错了吗?我想避免创建任何文件,并且如果uri受到真实用户配置文件的影响,而不是404显示模板。 – Michalaq
我在段落中分割了你的问题。更易于阅读。 ;) –