0

你如何直接返回<?php include("./php/content/index.php"); ?>

Asin,如果您已经在页面上:

www.address.com/about/index.php

你如何将它链接到文件:

www.address.com/php/menu.php

我知道如果你把它工作,<?php include("www.address.com/php/content/index.php"); ?>但我被告知不要使用这种方法,因为这是非常糟糕的做法。

4

2 回答 2

2

您可以使用两个点向下查看文件夹结构:

include( "../php/content/index.php" );

您还可以在服务器上使用文件的完整路径,这样您就可以在任何地方使用同一行:

include( "/var/www/php/content/index.php" );

使用 URLinclude()是不好的做法,因为

  • 您正在使用 HTTP 检索页面,即使该文件位于您自己的服务器上
  • 服务器将解析 PHP 并仅传递 HTML 内容,因此您会丢失例如变量
  • 您必须从 Internet 访问该文件。使用文件系统路径,您可以将文件放在 webroot 之外。
于 2012-06-25T13:50:39.723 回答
1

以下示例从about/index.php开始

在相对锚点中:

<a href="../php/menu.php">Menu</a>

在绝对锚点中:

<a href="/php/menu.php">Menu</a>

除非您指的是服务器端,否则您可以使用header

Header("Location: http://address.com/php/menu.php");

或者一个include

Include("../php/menu.php");

更好的方法是在您的网站根目录中拥有一个公共库,您可以从中引用项目中所有文件的基本位置。也就是说,如果您在每个页面上都包含/common.php,那么您可以存储:

define('SITE_ROOT', dirname(__FILE__));

然后像往常一样绝对引用任何文档中的包含:

include(SITE_ROOT . 'php/menu.php');
于 2012-06-25T13:49:06.160 回答