PHP: PHP Hypertext Preprocessor

Home

PHP Tutorial
Knowledge Developer Database Internet Resource
ไฟล์ และไดเรคทอรี
1. การเปิดและปิดไฟล
2. การเขียนลงไฟล์
3. การอ่านไฟล์
4. ฟังก์ชันไฟล์อื่นที่มีประโยชน์
5. การล็อกไฟล์
6. การเข้าถึงไดเรคทอรี
7. การทำงานกับแม่ข่าย
8. การเปลี่ยนทิศทางเพจ
 
PHP เบื้องต้น
1. เริ่มต้นด้วย PHP
2. ภาษา PHP
3. การทำงานไฟล์ และไดเรคทอรี
4. การทำงานกับ Array
5. การควบคุมข้อความ และนิพจน์ปกติี่
6. คำสั่งใช้ใหม่และฟังก์ชัน
7. Object Oriented Programming
 
PHP
PHP เบื้องต้น
การสร้างโปรแกรมประยุกต์เว็บ
PHP ระดับสูง
 
Internet
PHP
SSI
HTML
AJAX
 
PHP เบื้องต้น > การทำงานไฟล์ และไดเรคทอรี

การเข้าถึงไดเรคทอรี

ถึงแม้ว่าจะสามารถเข้าถึงไฟล์ได้แล้ว แต่ควรจะเรียนรู้การทำงานกับไดเรคทอรีเพื่อทำให้เข้าใจระบบไฟล์ได้ดียิ่งขึ้น

การควบคุมพาร์ท

ปัญหาใหญ่ในการทำงานกับไฟล์คือ ระบบปฏิบัติการต่างกันกำหนดพาร์ทของไฟล์ต่างกัน ส่วนใหญ่คือ Windows กำหนดเป็น drive:\path\to\file และ Unix ใช้ path/to/file แต่สามารถลดความสับสนนี้ได้

ประการแรก สามารถใช้ forward slash (\) ได้ เนื่องจาก Windows เข้าใจ forward slash ดังนั้นจึงไม่จำเป็นต้องใช้ backslash ใน PHP การทำงานกับข้อความที่ใช้ backslash ต้องมีการ escape ด้วย backslash เพื่อป้องกันไม่ให้ PHP แปลความหมาย

$path1 = "c:\windows\php.ini";
$path2 = "c:\\windows\\php.ini";
$path = "c:/windows/php.ini";                 // สะดวกกว่า

ประการที่ 2 สามารถใช้ฟังก์ชันของ PHP ดึงสารสนเทศพาร์ทได้

$path1 = "c:/mydata/animal/bird.txt";
echo "ชื่อไฟล์ <b>".basename($path1)."</b><br/>\n";
echo "ชื่อไดเรคทอรี <b>".dirname($path1)."</b><br/>\n";

ผลลัพธ์
ชื่อไฟล์ bird.txt
ชื่อไดเรคทอรี c:/mydata/animal

ฟังก์ชัน realpath อ่านพาร์ทสัมพัท์และส่งออกพาร์ทสัมบูรณ์ของไฟล์นั้น pathinfo แยกชื่อไดเรคทอรี, ชื่อไฟล์ และนามสกุลไฟล์ของพาร์ทที่กำหนด

$path2 = "../../images/parrot.jpg";
echo "พาร์ทจริงของ <em>$path2</em>: <b>"
. realpath($path2)."</b><br/>\n";
print_r (pathinfo($path2)); echo "<br/>\n";
print_r (pathinfo(realpath($path2)));

ผลลัพธ์
พาร์ทจริงของ ../../images/parrot.jpg: C:\AppServ\www\images\parrot.jpg
Array( [dirname] => ../../images
[basename] => parrot.jpg
[extension] => jpg )
Array( [dirname] => C:\AppServ\www\images
[basename] => parrot.jpg
[extension] => jpg )

การใช้ Class ค้นหารายละเอียดในไดเรคทอรี

ใน PHP 5 การดูรายละเอียดของไดเรคทอรีทำได้ง่ายด้วย class ชื่อ dir ซึ่งทุกอย่างเหมือน class ปกติ ยกเว้นการสร้าง ตัวอย่างคำสั่ง dirclass.php

รายการคำสั่ง 1.3.1 dirclass


<?php

$path = “C:\AppServ\www\phptrain\chapter01“;
$dir = dir($path);

if ($dir === FALSE)
{

echo "ไม่พบไดเรคทอรี $path<br/>";
exit;
echo "</body>";
echo "</html>";

}

while (($entry = @$dir->read()) !== FALSE)
{

echo $entry."<br/>";

}

?>

หมายเหตุ    การสร้าง dir class ไม่ต้องใช้คีย์เวิร์ด new
$dir -> read() ส่งออกค่าเป็น Boolean

การย้อนกลับไปจุดเริ่มต้นของ dir class เรียกเมธอด rewind
$dir ->rewind();

การปิดใช้เมธอด close
$dir ->close();

การใช้ฟังก์ชันค้นหารายละเอียดในไดเรคทอรี

คำสั่งของ PHP ที่ทำงานกับไดเรคทอรียังคงใช้วิธี procedure ที่ประกอบด้วยกลุ่มฟังก์ชัน

<?php

$path = "C:\AppServ\www\phptrain\chapter01";
$dir = opendir($path);

if ($dir === FALSE)
{

echo "ไม่พบไดเรคทอรี $path<br/>";
echo "</body>";
echo "</html>";
exit;

}

while (($entry = @$readdir()) !== FALSE)
    echo $entry."<br/>";

?>

การให้พอยต์เตอร์ย้อนกลับไปจุดเริ่มต้น เรียกฟังก์ชัน rewinddir
rewinddir($dir);

การปิดใช้ฟังก์ชัน closedir
closedir($dir);

การเปลี่ยนไดเรคทอรีปัจจุบัน

การเปลี่ยนไดเรคทอรีปัจจุบันใช้ฟังก์ชัน chdir()

$result = @chdir("../logs");
if ($result === FALSE)
    echo "ไม่พบไดเรคทอรี ../logs";
// เปลี่ยนไดเรคทอรีเรียบร้อยแล้ว

การสร้างและลบไดเรคทอรี

PHP มีฟังก์ชันสร้างไดเรคทอรีและลบไดเรคทอรี และสามารถทำได้ในพารท์ที่สคริปต์ของผู้ใช้เรียกใช้ในฐานะการเข้าถึง
การใช้ mkdir () มีความซับซ้อน ต้องใช้ 2 พารามิเตอร์สำหรับพาร์ทที่ไดเรคทอรีต้องการ (รวมกับชื่อไดเรคทอรีใหม่) และสิทธิบนไดเรคทอรี ตัวอย่างเช่น
mkdir ("/tmp/testing", 0777);

ฟังก์ชัน rmdir () ใช้ลบไดเรคทอรี
rmdir ("/tmp/tosting");

หรือ
rmdir ("C:\\tmp\\testing");

ไดเรคทอรีที่กำลังลบต้องว่างเปล่า


  

สงวนลิขสิทธิ์ (C) widebase / Julaphak