Hàm dirname() trong PHP
Trần Thị Vân
- 1224
- 09/08/2025
Chức năng của Hàm dirname() trong PHP
Hàm dirname() trong PHP dùng để lấy cây thư mục cha của một tệp hoặc lấy cây thư mục cha của thư mục con.
Cú pháp của Hàm dirname() trong PHP
$kết_quả = "đường_dẫn_tới_file_hoặc_thư_mục_con";
đường_dẫn_tới_file_hoặc_thư_mục_con: Đường dẫn tới file hoặc thư mục con.
$kết_quả: Trả về cây thư mục cha.
Code Hàm dirname() trong PHP
<?php
// Lấy cây thư mục cha của tệp
echo dirname("thumuctest/tm2/tm3/tm4/test.txt");
// Kết quả: thumuctest/tm2/tm3/tm4
// Lấy cây thư mục cha của thư mục con
echo dirname("thumuctest/tm2/tm3/tm4");
// Kết quả: thumuctest/tm2/tm3
?>
Kết quả:
thumuctest/tm2/tm3/tm4
thumuctest/tm2/tm3
Hàm dirname() trong PHP được sử dụng như thế nào trong thực tế?
Trong các dự án PHP, dirname() thường được dùng khi cần xác định thư mục chứa một tệp hoặc di chuyển từ một thư mục hiện tại lên thư mục cha. Hàm này đặc biệt hữu ích khi xây dựng đường dẫn tương đối giữa các tệp, tổ chức mã nguồn theo nhiều thư mục hoặc nạp tài nguyên nằm ở vị trí khác trong dự án.
Lấy đường dẫn thư mục từ đường dẫn file
Khi truyền đường dẫn của một tệp vào dirname(), PHP sẽ trả về phần đường dẫn thư mục chứa tệp đó. Nhờ vậy, bạn có thể lấy thư mục mà không cần tự tách chuỗi bằng các thao tác xử lý ký tự.
Ví dụ, nếu một tệp nằm tại đường dẫn /var/www/project/config/database.php, việc sử dụng dirname() sẽ giúp xác định thư mục config:
<?php
$file = '/var/www/project/config/database.php';
echo dirname($file);
?>
Kết quả:
/var/www/project/config
Cách làm này phù hợp khi chương trình cần xây dựng một đường dẫn mới dựa trên vị trí của tệp hiện tại thay vì ghi cố định toàn bộ đường dẫn.
Kết hợp dirname() với __DIR__ trong PHP
__DIR__ cung cấp đường dẫn tuyệt đối đến thư mục của tệp PHP đang được thực thi. Khi kết hợp với dirname(), bạn có thể dễ dàng đi lên một hoặc nhiều cấp trong cấu trúc thư mục.
Chẳng hạn, một tệp nằm trong thư mục app/Controllers nhưng cần truy cập thư mục gốc của dự án. Có thể sử dụng:
<?php
$root = dirname(__DIR__);
echo $root;
?>
Trong trường hợp tệp hiện tại nằm trong /var/www/project/app/Controllers, biểu thức trên sẽ đưa đường dẫn lên thư mục app. Nếu cần đi lên thêm một cấp, có thể lồng hàm:
<?php
$root = dirname(dirname(__DIR__));
echo $root;
?>
Cách kết hợp này giúp mã nguồn ít phụ thuộc vào đường dẫn tuyệt đối được viết cố định, từ đó thuận tiện hơn khi di chuyển dự án sang máy chủ hoặc môi trường phát triển khác.
Sử dụng dirname() để truy cập thư mục cha
Một ứng dụng phổ biến khác của dirname() là xác định thư mục cha của vị trí hiện tại. Đây là cách đơn giản để xây dựng đường dẫn đến các thư mục nằm bên ngoài thư mục đang chứa tệp.
Ví dụ, nếu tệp PHP hiện tại nằm trong thư mục includes và cần truy cập tệp trong thư mục cha:
<?php
$parentDirectory = dirname(__DIR__);
$configFile = $parentDirectory . '/config.php';
echo $configFile;
?>
Thay vì phụ thuộc vào vị trí thư mục được xác định thủ công, chương trình có thể tính toán đường dẫn dựa trên cấu trúc thực tế của dự án. Điều này đặc biệt hữu ích khi mã nguồn được chia thành nhiều khu vực như cấu hình, thư viện, controller và tài nguyên dùng chung.
Xử lý đường dẫn nhiều cấp bằng dirname()
Với cấu trúc dự án có nhiều tầng thư mục, dirname() có thể được sử dụng nhiều lần để lùi dần về các cấp cao hơn. Mỗi lần gọi hàm sẽ loại bỏ cấp thư mục cuối cùng của đường dẫn được truyền vào.
Ví dụ:
<?php
$path = '/var/www/project/app/Services';
echo dirname($path);
?>
Kết quả là:
/var/www/project/app
Nếu cần xác định thư mục cao hơn nữa, có thể gọi dirname() nhiều lần:
<?php
$path = '/var/www/project/app/Services';
$projectDirectory = dirname(dirname($path));
echo $projectDirectory;
?>
Khi xử lý đường dẫn nhiều cấp, nên xác định rõ cấp thư mục cần lấy để tránh tạo đường dẫn sai. Với những cấu trúc phức tạp, việc đặt kết quả vào biến có tên dễ hiểu cũng giúp mã nguồn dễ kiểm tra và bảo trì hơn.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm dirname() trong PHP.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *