我总是对更有效的方式和学习新事物感兴趣。现在,我在每个文件中都使用了代码<?php include('config.php'); ?>
。根据文件在我的文件夹结构中的位置,我可能会有<?php include('../config.php'); ?>
,甚至<?php include('../../config.php'); ?>
。我怎样才能让它更有效率呢?有没有一种方法可以把它放在根目录下,让根目录中的所有内容都需要config.php?
发布于 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将如下所示
include 'db.php';
include 'session.php';
include 'html.header.php';
.....users-specific stuff
include 'html.footer.php';
这非常单调乏味(你必须重复很多代码),而且不灵活(想想在站点的所有页面上添加一个侧边栏)。我的建议是包含"inside out“,即包含特定于页面的代码的”通用内容“文件:
# 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轻松解决
发布于 2009-11-11 12:20:54
将包含config.php
的路径放入您的php include path中,然后您可以简单地执行以下操作:
include 'config.php';
或者更好:
require_once 'config.php';
require
优于include
,因为当由于某些原因(例如,找不到文件、权限错误等)而无法包含文件时,它会触发错误而不是警告。_once
后缀是一个很好的补充,可以确保相同的文件不会被不必要地多次包含。
另外,请注意,在include
调用中不需要用括号将'config.php'
括起来。include
不是php中的函数。它是一种语言结构。括号只是作为一个不必要的分组,就像这个例子一样:$myVar = (2 + 2);
。
发布于 2009-11-11 12:22:38
您可以使基本目录成为常量
define('BASE_DIR', realpath(__FILE__));
把它放到你的index.php里
然后你可以这样做
include BASE_DIR . 'config.php';
https://stackoverflow.com/questions/1712973
复制相似问题