File Directory
มีตัวอย่างทดสอบการระบุ Path หรือ Root ให้ถูกต้อง รวมทั้งแสดงค่าระบบที่เกี่ยวกับ Path ด้วยครับ //อ่านไดเร็คทอรี่ root
<head>
<meta http-equiv="Content-Type"content="text/html;charset=windows-847">
<title>โปรแกรม ทดสอบค่าต่างๆของ Server</title>
<style>
<!--
A:link {color: "black"; text-decoration: none; font-weight: bolder; font-size: x-small}
A:visited {color: "black"; text-decoration: none; font-weight: bolder; font-size: x-small}
A:hover {color: "blue"; text-decoration: none; font-size: x-small}
table {color: black; font-family: Tahoma; font-size: x-small}
body {color: black; font-family: Tahoma; font-size: x-small}
input {color: black; font-family: Tahoma; font-size: x-small}
img {border: none}
pre {font-family: Tahoma; font-size: x-small}
-->
</style>
</head>
<font face="Tahoma" size="2" color="black"><div align="center"><b>โปรแกรมทดสอบเว็บเพจ <font color="red">PHP</font></b></div>
<?
echo "<br><b><font color=green>ตัวแปรแสดงค่าต่างๆของระบบ</font></b>";
echo "<br><b>".'$_SERVER[DOCUMENT_ROOT] = '."</b>".$_SERVER[DOCUMENT_ROOT];
echo "<br><b>".'$_SERVER[PATH_TRANSLATED] = '."</b>".$_SERVER[PATH_TRANSLATED];
echo "<br><b>".'$_SERVER[SCRIPT_NAME] = '."</b>".$_SERVER[SCRIPT_NAME];
echo "<br><b>".'$_SERVER[SERVER_NAME] = '."</b>".$_SERVER[SERVER_NAME];
echo "<br><b>".'$_SERVER[HTTP_HOST] = '."</b>".$_SERVER[HTTP_HOST];
echo "<br><b>".'$_SERVER[PHP_SELF] = '."</b>".$_SERVER[PHP_SELF];
echo "<br><b>".'$_SERVER[HTTP_REFERER] = '."</b>".$_SERVER[HTTP_REFERER];
echo "<br><b>".'$_SERVER[REMOTE_ADDR] = '."</b>".$_SERVER[REMOTE_ADDR];
$root=$_POST["root"];
$dirs=$_POST["dirs"];
$dirsep=$_POST["dirsep"];
if (empty($root)) $root=$_SERVER[DOCUMENT_ROOT];
if (empty($dirsep)) $dirsep='/';
else if ($dirsep!='/') $dirsep='\';
else $dirsep='/';
$root=ereg_replace("/$", "", $root)."/";
?>
<form method="post" action="test.php">
<b><font color="gray">Root :</font></b> <input type="text" name="root" size=51 maxlength=50 value="<?=$root?>"> <input type="submit" value="กำหนด root" name="submit">
<br><input type="checkbox" name="dirsep" value='\' <?if ($dirsep=='\') echo checked?>><b><font color="gray"> : ใช้ \ ในการแบ่งไดเร็คทอรี่</font></b>
<br><input type="checkbox" name="dirs" value='/' <?if ($dirs=='/') echo checked?>><b><font color="gray"> : มีเครื่องหมาย / ปิดไดเ็คทอรี่สุดท้าย</font></b>
<br><br>
<?
//ทดสอบสร้างไฟล์บน root
$filer=$root."_temp.php";
$filer=ereg_replace("/", $dirsep, $filer);
echo "<br>".'fopen('.$filer.", \"w\") ";
$fr=fopen($filer, "w");
if (!$fr) {
echo "<font color=red> ไม่สามารถสร้างไฟล์บน <b>$root</b> ได้</font> ";
} else {
echo "<font color=green> สร้างไฟล์บน <b>$root</b> ได้</font> ";
fwrite($fr, "<font color=green>นี่คือไฟล์ $filer ที่สร้างขึ้น ด้วย ".'fopen'."</font><br><a href=newlink.php>ลิงค์</a> <a href=/newlink.php>/ลิงค์</a> <a href=./newlink.php>./ลิงค์</a> <a href=../newlink.php>../ลิงค์</a>");
fclose($fr);
echo "<br>".'include('.$filer.') '; if (!include($filer)) echo "<font color=red> ไม่สามารถอ่านไฟล์ในไดเร็คทอรี่ root ได้</font> ";
}
//ทดสอบสร้างไดเร็คทอรี่บน root
$makedir=$root."testdir".$dirs;
$makedir=ereg_replace("/", $dirsep, $makedir);
echo '<br><br>is_dir('.$makedir.')';
$direxists=is_dir($makedir);
if ($direxists) {
echo "<font color=gray> มีไดเร็คทอรี่ <b>$makedir</b> อยู่แล้ว</font> ";
$dirok=true;
} else {
echo "<font color=gray> ไม่มีไดเร็คทอรี่ <b>$makedir</b></font> ";
echo '<br>mkdir('.$makedir.', 0777)';
$dirok=mkdir($makedir, 0777);
if (!$dirok) echo "<font color=red> ไม่สา่มารถสร้างไดเร็คทอรี่บน <b>$root</b> ได้</font> ";
else echo "<font color=green> สา่มารถสร้างไดเร็คทอรี่บน <b>$root</b> ได้</font> ";
}
if ($dirok) {
//ทดสอบสร้างไฟล์บนไดเร็คทอรี่ที่สร้างใหม่
$filen=$root."testdir/_temp.php";
$filen=ereg_replace("/", $dirsep, $filen);
echo "<br><br>".'fopen('.$filen.", \"w\") ";
$fn=fopen($filen, "w");
if (!$fn) {
echo "<font color=red> ไดเร็คทอรี่ <b>$makedir</b> อ่านได้อย่างเดียว</font> ";
} else {
echo "<font color=green> สร้างไฟล์บนไดเร็คทอรี่ที่สร้างได้</font> ";
fwrite($fn, "<font color=green>นี่คือไฟล์ $filen ที่สร้างขึ้น ด้วย ".'fopen'."</font><br><a href=newlink.php>ลิงค์</a> <a href=/newlink.php>/ลิงค์</a> <a href=./newlink.php>./ลิงค์</a> <a href=../newlink.php>../ลิงค์</a>");
fclose($fn);
echo "<br>".'include('.$filen.') '; if (!include($filen)) echo "<font color=red> ไม่สามารถอ่านไฟล์ในไดเร็คทอรี่ที่สร้างได้</font> ";
}
}
$root=ereg_replace("/", $dirsep, $root);
$DIR = opendir($root);
if (!$DIR) echo "<br><br><font color=red>ไม่สามารถอ่านไดเร็คทอรี่ $root ได้</font>";
echo "<br>";
while ($text = readdir($DIR)) {
$readdir=$root.$text;
$text="<br><font color=gray><b>$readdir</font>";
if (is_dir($readdir)) {
$text.="<font color=maroon> ไดเร็คทอรี่";
if (!is_writeable($readdir)) $text.="อ่านอย่างเีดียว";
$text.="</font>";
}
$text.="</b> ";
echo $text;
}
closedir($DIR);
echo "<br> ";
if ($fr) {echo "<br>".'unlink('.$filer.')'; if (!unlink($filer)) echo "<font color=red> ลบไฟล์ในไดเร็คทอรี่ root ไม่สำเร็จ</font>";};
if ($fn) {echo "<br>".'unlink('.$filen.')'; if (!unlink($filen)) echo "<font color=red> ลบไฟล์ในไดเร็คทอรี่ย่อยไม่สำเร็จ</font>";};
if (!$direxists) {echo "<br>".'rmdir('.$makedir.')'; if (!rmdir($makedir)) echo "<font color=red> ลบไดเร็คทอรี่ย่อยไม่สำเร็จ</font>";};
?>
</form>
</font>
</body>
</html>