是否可以创建没有任何文件的子页面?

时间:2017-02-25 06:37:42

标签: javascript php jquery html nginx

对于PHP来说,我是新手。我写了一些JS来为我的项目提出AJAX请求并且运行良好,但我不知道如何将其转换为PHP。

我已经准备好了以下布局:

  • mainLayout.php,
  • userLayout.php,
  • offerLayout.php,

在这些文件中有一些构建HTML页面的PHP和MySQL部分 在Ajax中,很容易在仅使用一个页面的多个用户之间导航,并用数据替换一些div ......

但是,一个巨大的减号是你没有一个地址引用用户个人资料或优惠(如mywebsite.com/user1)。

现在,当我使用PHP时,我希望实现相同的布局效果 如何避免创建数千页(当然,甚至是动态的,似乎是浪费内存IMO),如user1.phpuser2.phpoffer1.php等。

我不知道如何在不创建数千个文件但只创建一个模板的情况下实现像example.com/user277373.php这样的网站的效果。

2 个答案:

答案 0 :(得分:0)

我看到的两种解决方案是使用GET来解析数据:

http://example.com/?data=1736861

并通过$ _GET变量访问它:

$id = $_GET["data"];

($ id将是1736861)

或者你使用了飞行php扩展,看起来像这样:

Flight::route('/id/@id', function($id){
    echo "ID: $id";
});

,网址看起来像http://example.com/id/1736861。您还可以在飞行模块中使用多个变量。

我希望这有帮助,塞巴斯蒂安

答案 1 :(得分:0)

您熟悉任何MVC框架吗?如果没有,我强烈建议习惯于MVC设计范例。 MVC =模型视图控制器。来自Wikipedia, a short excerpt

  
      
  • 模型存储根据来自控制器的命令检索并显示在视图中的数据。
  •   
  • 视图根据模型中的更改为用户生成新输出。
  •   
  • 控制器可以向模型发送命令以更新模型的状态(例如,编辑文档)。它还可以向其发送命令   关联视图以更改视图的模型表示(例如,   滚动文档)。
  •   

MANY框架的两个关键组件(几乎所有语言)都是路由和模板。使用路由系统时,您可以为每个加载的与特定路由匹配的页面指定模板。例如,site.com/people/:id其中&#39;:id&#39;可以是网址中的任何值,并配置为使用&#34; person.html&#34;用于HTML输出。请注意&#34; person.html&#34;接收将动态填充内容的变量/数据,例如<h2>Hello, {{name}}</h2>

因此,澄清一下,site.com/people/252site.com/people/12site.com/people/5site.com/people/john都会匹配site.com/people/:id路径:id是动态的,您的系统将使用ONE TEMPLATE(您指定的)显示所有数据。不要忘记,当满足该路径路径时,只有第1步。您可能需要将:id运行一些数据库查询并将该数据传递到模板中。

一个名为Slim的流行的微PHP框架可能是一个很好的起点。这里有关于处理路由和模板的方法的文档: https://www.slimframework.com/docs/objects/router.html https://www.slimframework.com/docs/features/templates.html

Slim常用于Twig,一种非常流行的PHP模板引擎。这是其网站/文档:http://twig.sensiolabs.org/

如果这还不够,Slim有一个非常方便的First App演练,它将向您展示路线,数据库连接和模板:https://www.slimframework.com/docs/tutorial/first-app.html

希望这些信息可以帮助您完成旅程 - 祝您好运!