1

我正在尝试在另一个目录中包含一个 PHP 文件。

这是我的文件结构

settings\
    manage.php

website \
    index.php
    main.js
    main.css

对于manage.php

echo 'Welcome to the manager! Here is your website:';
include('../website/index.php');

索引.php

 <script src='main.js'></script>
 <link rel="stylesheet" type="text/css" href="main.css">

所以,当我加载 manage.php 时,我没有得到 main.js 或 main.css。我怎样才能让它工作?也许包括不是正确的方法?我无法修改网站文件夹中的任何内容。

[我知道 iFraming 是一个可能的解决方案,但我希望得到另一个答案]

4

3 回答 3

3

由于您无法编辑/website/内容,因此您应该尝试使用这个丑陋的代码进行启动。

include在你的 manage.php 语句之前添加以下语句

echo('<base href="../website/">');

如果它适合您,那么您可以考虑在包含 html 文件之前使用 PHP 发送正确的标头,而不是直接回显基本标记。

请考虑jeroen的评论作为脚踏实地的解决方案并使用框架

于 2013-05-30T01:15:09.823 回答
2

这里的问题是,当浏览器加载时,/settings/manage.php它会发出请求/settings/main.js并且/settings/main.css不存在

您可能需要将 index.php 中的 html 更改为以下内容:

<script src="/website/main.js"></script>
<link rel="stylesheet" type="text/css" href="/website/main.css">

注意我已经根据您的目录布局对您的 URL 做了一些假设,因此您可能需要调整我的解决方案以使其适合您

于 2013-05-30T01:04:43.993 回答
1

根据问题下方的评论:如果您想为您的用户包含一些功能/代码(而不是相反;您在代码中包含用户的东西),您应该查看auto_prepend_file指令。

基本上,您在 php.ini 文件中指定要require在主文件之前添加(作为)某个 php 文件。

编辑:由于您无权访问 php.ini 但您可以使用.htaccess文件,因此您可以将其放入您的.htaccess

php_value auto_prepend_file "/path/to/your/file.php"
于 2013-05-30T02:03:39.837 回答