首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何有效地包含config.php?

如何有效地包含config.php?
EN

Stack Overflow用户
提问于 2009-11-11 12:16:58
回答 3查看 53.2K关注 0票数 19

我总是对更有效的方式和学习新事物感兴趣。现在,我在每个文件中都使用了代码<?php include('config.php'); ?>。根据文件在我的文件夹结构中的位置,我可能会有<?php include('../config.php'); ?>,甚至<?php include('../../config.php'); ?>。我怎样才能让它更有效率呢?有没有一种方法可以把它放在根目录下,让根目录中的所有内容都需要config.php?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-11 12:25:45

有一种方法可以自动包含一个文件( point设置),但是最大的改进是放弃使用多个auto_prepend_file文件,而使用index.php作为整个网站的单一入口点。

假设你写了一个SO克隆;)的页面“问题”,“标签”,“用户”,等等。在每个页面上,你需要一些通用的php东西(db,session) +常见的html元素(页眉,页脚)。一种流行的方法是有一堆php文件(questions.php,tags.php,users.php),每个文件都包含通用的东西。例如,users.php将如下所示

代码语言:javascript
复制
include 'db.php';
include 'session.php';
include 'html.header.php';
.....users-specific stuff 
include 'html.footer.php';

这非常单调乏味(你必须重复很多代码),而且不灵活(想想在站点的所有页面上添加一个侧边栏)。我的建议是包含"inside out“,即包含特定于页面的代码的”通用内容“文件:

代码语言:javascript
复制
 # index.php
 db functions
 session functions
 html header

 $page = isset($_GET['page']) 
   ? preg_replace("/\W+/", "", $_GET['page'])
   : "home";
 include "$page.php";

 html footer

因此,您将在网站上有一个单一的入口点-这是更灵活和更好的调试。唯一的缺点是urls不那么“好”(user.php vs index.php?page=user),但是这个问题可以用mod_rewrite轻松解决

票数 19
EN

Stack Overflow用户

发布于 2009-11-11 12:20:54

将包含config.php的路径放入您的php include path中,然后您可以简单地执行以下操作:

代码语言:javascript
复制
include 'config.php';

或者更好:

代码语言:javascript
复制
require_once 'config.php';

require优于include,因为当由于某些原因(例如,找不到文件、权限错误等)而无法包含文件时,它会触发错误而不是警告。_once后缀是一个很好的补充,可以确保相同的文件不会被不必要地多次包含。

另外,请注意,在include调用中不需要用括号将'config.php'括起来。include不是php中的函数。它是一种语言结构。括号只是作为一个不必要的分组,就像这个例子一样:$myVar = (2 + 2);

票数 19
EN

Stack Overflow用户

发布于 2009-11-11 12:22:38

您可以使基本目录成为常量

代码语言:javascript
复制
define('BASE_DIR', realpath(__FILE__));

把它放到你的index.php里

然后你可以这样做

代码语言:javascript
复制
include BASE_DIR . 'config.php';
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1712973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档