包含来自不同文件夹PHP的文件

时间:2015-12-14 09:11:13

标签: php

我知道这个问题已被多次提出,但我无法找到解决问题的正确答案。

我的文件夹结构是:

 ├── index.php
 ├── js/
 │   └── js.js
 ├── css/
 │   └── style.css
 ├── src/
 │   └── include.php
 └── level1/
     └── index.php

在include.php中:

<script src="js/jquery-1.11.0.min.js"></script>
<link href="css/style.css" type="text/css" rel="stylesheet" />

在index.php中:

<?php include('src/include.php');?> // works fine

level1 / index.php 中,我致电

<?php include('../src/include.php');?> // js and css file included but points to level1 folder.

我想保留js&amp; js&amp;中的css样式文件分别是css文件夹,并且仍然可以从不同的文件夹中包含它们。

3 个答案:

答案 0 :(得分:1)

1.你必须明白&#34; /&#34;的区别。在php和css之间。对于php,它从你的系统的文件系统开始,但是对于css / html / js,它意味着你的webroot。

2.我使用这样的代码 在include.php上

define("TEMPLATE_PATH",dirname(__FILE__)."/template");//this is for PHP file's include
include TEMPLATE_PATHE."/test.php";//php file as an example

define("WEB_TEMPLATE_PATH","/rain/template");//this is for html
<script src="<?=WEB_TEMPLATE_PATH?>/js/jquery-1.11.0.min.js"></script>
<link href="<?=WEB_TEMPLATE_PATH?>/css/style.css" type="text/css" rel="stylesheet" />

答案 1 :(得分:0)

您的问题是,<script><link>将使用相对于其所在位置的目录,这意味着

js/jquery-1.11.0.min.js

在一个案例中,

level1/js/jquery-1.11.0.min.js

要解决此问题,您可以预先添加/(如comments中提到的@roullie),如果您的目录结构位于根目录,或者是/se/appname/之类的完整路径

您还可以提供一些返回(绝对)基本路径的全局实例,以防止拼写错误和类似错误。有关示例,请查看代码点火器base_url() here

答案 2 :(得分:-1)

On include.php ,filepath will different for both locations

on index.php
<script src="js/jquery-1.11.0.min.js"></script>
<link href="css/style.css" type="text/css" rel="stylesheet" />

because these file are including from index.php that is on root folder

On level1/index.php, I called
<script src="../js/jquery-1.11.0.min.js"></script>
<link href="../css/style.css" type="text/css" rel="stylesheet" />
because these file are including from level1/index.php that is in level1 folder