Php从root目录获取文件到另一个目录

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

标签: php dir home-directory

您好我是php编程的新手并且学习这个我发现了一个小问题。 我有这样的目录:

c:/xampp/htdocs/
 -practise
    + /css
    + /js
    + /images
    - /extra
      - /folder1
        - / folder1_1
            tst.php
    index.php
    navbar.php
    about.php
    blab.php
    foo.php
    lib.php

我创建了一个lib.php,其中包含/css and /js(jquery,w3.css等)的所有文件。我在tst.php中添加此文件,例如include(../../../lib.php);。当我在浏览器中运行我的tst.php文件时,lib.php的内容会执行,但css and js的文件不会在浏览器上加载(在inspect element - &gt;控制台中给我错误文件未找到< / em>的)。

如何在tst.php中使用我的lib.php,几乎在每个文件夹中??

我是否使用类似$_server['something']./lib.php...的内容?

这是我的lib.php

echo '<script src="js/browjs.js"></script> ';
echo '<link rel="stylesheet" type="text/css" href="css/poperi.css">';
echo '<link rel="stylesheet" href="css/w3.css">';
echo '<link rel="stylesheet" href="css/navigt.css">';
echo " this is content for check if lib.php is loaded or not";// this line show me in tst.php

我尽力解释我的问题,我不知道你需要更多地了解这个问题... TY提前......

1 个答案:

答案 0 :(得分:1)

你可以尝试

define( '_LIB_FILE_', $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'practise' . DIRECTORY_SEPARATOR . 'lib.php' );

并使用_LIB_FILE_常量include_one _LIB_FILE_;

$_SERVER['DOCUMENT_ROOT']是您的根目录c:/xampp/htdocs/,只需将您的子目录附加到其中

LE: 所以在你的lib.php中加上这些代码行

<?php
$root        = str_replace( '\\', '/', $_SERVER['DOCUMENT_ROOT'] );
$current_dir = str_replace( '\\', '/', dirname( __FILE__ ) );
$http_root   = 'http://' . $_SERVER['HTTP_HOST'] . str_replace( $root, '', $current_dir ) . '/';

// echo $http_root; // this will let you see what is your current http path of lib.php ex. http://localhost/practise/
// next you include your code
// BEST PRACTICE short for multiple echos
echo '<script src="', $http_root, 'js/browjs.js"></script> ';
// you could do it with concatanation
echo '<link rel="stylesheet" type="text/css" href="' . $http_root . 'css/poperi.css">';
// string evaluation
echo "<link rel='stylesheet' href='{$http_root}css/w3.css'>";
// string evaluation with character escaping \"
echo "<link rel=\"stylesheet\" href=\"$http_rootcss/navigt.css\">";

echo " this is content for check if lib.php is loaded or not";
你在tst.php中的

现在可以包含前面提到的片段,但我把它转换为变量

// this is called absolute path
$library_file = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'practise' . DIRECTORY_SEPARATOR . 'lib.php';
include $library_file;
// or 
// include( $library_file );
// and this is relative path. meaning the file relatively to your current file
// include '../../../lib.php';