本文目錄一覽:
- 1、php_admin_value open_basedir設置的目錄不生效,還是會可以瀏覽其它網站目錄
- 2、php 中 這句話什麼意思?
- 3、php 獲取當前目錄所有文件夾名 及下級目錄文件夾名 求代碼詳解
php_admin_value open_basedir設置的目錄不生效,還是會可以瀏覽其它網站目錄
「還是會可以瀏覽其它網站目錄」,
你是想配置什麼?
open_basedir只是定義php能操作的目錄,
能不能瀏覽訪問不是他來配置的吧
你可以在apache的配置中或者在目錄中放個.htaccess文件。如
Directory “目錄”
Order deny,allow
deny from all
/Directory
php 中 這句話什麼意思?
__FILE__表示當前所在文件的絕對路徑包括文件名,dirname(__FILE__)表示當前文件的絕對路徑,basename(__FILE__)表示當前文件的文件名稱,dirname(__FILE__).”/f/”.basename(__FILE__)則表示當前文件所在目錄下的f目錄下的,文件名稱為dirname(__FILE__)的文件,require表示包含該文件到這個文件。下面是詳解:1)dirname(__FILE___) 函數返回的是腳本所在在的路徑。
比如文件 b.php 包含如下內容:
?php
$basedir = dirname(__FILE__);
?
如果b.php被其他目錄里的a.php文件require 或者 include 去引用的話。
變數$basedir 的內容還是b.php所在的那個文件夾的路徑。
而不是變成a.php文件所在的目錄。
2)dirname(__FILE__) 一般會返迴文件所的當前目錄到系統根目錄的一個目錄結構。
不會返回當前的文件名稱。
dirname(__FILE__) 也可能返回一個 . (當前目錄)
[原因是 b.php 文件在 http.conf 或者 PHP 配置開發環境的默認WEB目錄下.
比如 WEB_ROOT 為: “C:/root/www/”.]
b.php文件路徑為: “C:/root/www/b.php”.
3)使用方法提示,
如果重複一次可以把目錄往上提升一個層次:
比如:$d = dirname(dirname(__FILE__));
其實就是把一個目錄給dirname()做參數了.因為dirname()返回最後的目錄不帶\\或者是/
所以重複使用的時候可以認為 dirname() 把最下層的目錄當成文件名來處理了.照常返回
當前目錄的上級目錄.這樣重複就得到了它的上一級的目錄.
4)包含得到上一級目錄的文件
include(dirname(__FILE__).”/../filename
php 獲取當前目錄所有文件夾名 及下級目錄文件夾名 求代碼詳解
把這個文件放到\wamp\www\ 這裡,然後運行。
?php
if (isset($_GET[‘dir’])){ //設置文件目錄
$basedir=$_GET[‘dir’];
}else{
$basedir = ‘.’;
}
checkdir($basedir);
function checkdir($basedir)
{
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != ‘.’ $file != ‘..’){
if (!is_dir($basedir.”/”.$file)) {
echo “filename: $basedir/$file br”;
}else{
$dirname = $basedir.”/”.$file;
checkdir($dirname);
}
}
}
closedir($dh);
}
}
?
[以下於為題無關]
嗎蛋,代碼前的空格都沒了,這不是我去掉的哦,是百X把空格全去了,有強迫症表示不能接受啊………..
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/280754.html