您好我是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提前......
答案 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';