Có một số cách để lấy thư mục làm việc hiện tại trong PHP tùy thuộc vào những gì bạn đang làm việc. Nói chung, bạn muốn sử dụng các phương pháp này để lập trình tìm ra tập lệnh đang chạy nằm trong thư mục nào
Thư mục làm việc hiện tại Sử dụng hàm PHP getcwd[]
Cách thay đổi thư mục trong CMD. đồng
Vui lòng bật JavaScript
Cách thay đổi thư mục trong CMD. Dấu nhắc lệnhHàm PHP này trả về thư mục làm việc hiện tại nếu thành công và sai nếu thất bại. Hàm được gọi không có tham số
Trên một số biến thể Unix, getcwd[] sẽ trả về false nếu bất kỳ một trong các thư mục mẹ không được đặt chế độ tìm kiếm hoặc có thể đọc được, ngay cả khi thư mục hiện tại có.
Ví dụ
echo getcwd[];
Ví dụ trên sẽ xuất ra một cái gì đó tương tự như
/path/to/folder
Thư mục làm việc Sử dụng hàm dirname[] PHP
hàm dirname trả về đường dẫn của thư mục mẹ hoặc tùy thuộc vào các tham số mà bạn có thể xác định đường dẫn mẹ mà bạn muốn trả về bao xa
Để lấy thư mục hiện tại bằng dirname[], bạn cần thêm hằng số FILE được xác định trước PHP hoặc PHP_SELF
Ví dụ
require_once dirname[__FILE__] . '/folder/script.php';
echo dirname[$_SERVER[PHP_SELF]];
Một trong những ví dụ trên sẽ xuất ra một cái gì đó tương tự như
/path/to/folder
Sử dụng hàm cơ sở [] PHP
Hàm tên cơ sở trả về thành phần tên theo sau của đường dẫn
Ví dụ
echo "1] ".basename["/path/to/folder", ".d"].PHP_EOL;
echo "2] ".basename["/path/to"].PHP_EOL;
echo "3] ".basename["/path/"].PHP_EOL;
Các ví dụ trên sẽ xuất ra một cái gì đó tương tự như
1] folder
2] to
3] path
Phần kết luận
Bây giờ bạn đã học được ba cách để lấy thư mục làm việc hiện tại trong PHP
Tìm thấy bài viết này thú vị?
Hàm getcwd[] trong PHP là một hàm sẵn có được sử dụng để trả về thư mục làm việc hiện tại. Hàm này không chấp nhận bất kỳ tham số nào và trả về thư mục làm việc hiện tại khi gọi hàm thành công hoặc FALSE nếu không thành công
cú pháp
getcwd[]
Thông số. Hàm này không chấp nhận bất kỳ tham số nào
Giá trị trả về. Nó trả về thư mục làm việc hiện tại khi gọi hàm thành công hoặc FALSE khi thất bại
❮ Tham khảo thư mục PHP
Ví dụ
Lấy thư mục làm việc hiện tại
Kết quả
Định nghĩa và cách sử dụng
Hàm getcwd[] trả về thư mục làm việc hiện tại
cú pháp
chi tiết kỹ thuật
Giá trị trả về. Thư mục làm việc hiện tại khi thành công, FALSE khi thất bại. Phiên bản PHP. 4. 0+❮ Tham khảo thư mục PHPTrang web của tôi đã ngừng hoạt động trong vài giờ hôm nay khi công ty lưu trữ của tôi bất ngờ thay đổi thư mục http gốc của Apache thành thư mục mới có chứa liên kết tượng trưng. Thay đổi này đã phá vỡ một số tập lệnh PHP của tôi vì __DIR__
đột nhiên có một đường dẫn cơ sở khác với DOCUMENT_ROOT
và phương pháp str_replace
mà tôi đang sử dụng để xác định URL thư mục cho rằng chúng sẽ luôn giống nhau. Nếu bạn Google "cách lấy URL của thư mục hiện tại bằng PHP", có thể bạn sẽ tìm thấy các đề xuất sử dụng mã như thế này
// WARNING: DON'T USE THIS CODE!
$folderUrl = '//'.$_SERVER['HTTP_HOST'].str_replace[$_SERVER['DOCUMENT_ROOT'], '', __DIR__];
Hãy xem những biến này giải quyết vấn đề gì trên trang web của tôi
VariableValue$_SERVER['HTTP_HOST']
swharden.com
__DIR__
/home/customer/www/swharden.com/public_html/tmp/test
// This script displays the URL of the current folder
$realDocRoot = realpath[$_SERVER['DOCUMENT_ROOT']];
$realDirPath = realpath[__DIR__];
$suffix = str_replace[$realDocRoot, '', $realDirPath];
$prefix = isset[$_SERVER['HTTPS']] ? '//' : '//';
$folderUrl = $prefix . $_SERVER['HTTP_HOST'] . $suffix;
echo $folderUrl;
0/home/customer/www/swharden.com/public_html/tmp/test
// This script displays the URL of the current folder
$realDocRoot = realpath[$_SERVER['DOCUMENT_ROOT']];
$realDirPath = realpath[__DIR__];
$suffix = str_replace[$realDocRoot, '', $realDirPath];
$prefix = isset[$_SERVER['HTTPS']] ? '//' : '//';
$folderUrl = $prefix . $_SERVER['HTTP_HOST'] . $suffix;
echo $folderUrl;
2// This script displays the URL of the current folder
$realDocRoot = realpath[$_SERVER['DOCUMENT_ROOT']];
$realDirPath = realpath[__DIR__];
$suffix = str_replace[$realDocRoot, '', $realDirPath];
$prefix = isset[$_SERVER['HTTPS']] ? '//' : '//';
$folderUrl = $prefix . $_SERVER['HTTP_HOST'] . $suffix;
echo $folderUrl;
3// This script displays the URL of the current folder
$realDocRoot = realpath[$_SERVER['DOCUMENT_ROOT']];
$realDirPath = realpath[__DIR__];
$suffix = str_replace[$realDocRoot, '', $realDirPath];
$prefix = isset[$_SERVER['HTTPS']] ? '//' : '//';
$folderUrl = $prefix . $_SERVER['HTTP_HOST'] . $suffix;
echo $folderUrl;
4// This script displays the URL of the current folder
$realDocRoot = realpath[$_SERVER['DOCUMENT_ROOT']];
$realDirPath = realpath[__DIR__];
$suffix = str_replace[$realDocRoot, '', $realDirPath];
$prefix = isset[$_SERVER['HTTPS']] ? '//' : '//';
$folderUrl = $prefix . $_SERVER['HTTP_HOST'] . $suffix;
echo $folderUrl;
5So sánh __DIR__
với DOCUMENT_ROOT
, lưu ý rằng nếu không có độ phân giải đường dẫn thực thì các đường dẫn cơ sở sẽ khác nhau. Điều này khiến phương thức thay thế chuỗi đột ngột bị lỗi trên trang web của tôi, khiến một số trang web ngừng hoạt động trong vài giờ. Tôi sẽ chấp nhận nó như một sai lầm của tân binh và tôi đang chia sẻ những gì tôi học được ở đây phòng trường hợp nó giúp ích cho những người khác trong tương lai
Giải pháp là đảm bảo tất cả các đường dẫn được chuyển đổi thành đường dẫn tuyệt đối được chuẩn hóa bằng cách sử dụng
// This script displays the URL of the current folder
$realDocRoot = realpath[$_SERVER['DOCUMENT_ROOT']];
$realDirPath = realpath[__DIR__];
$suffix = str_replace[$realDocRoot, '', $realDirPath];
$prefix = isset[$_SERVER['HTTPS']] ? '//' : '//';
$folderUrl = $prefix . $_SERVER['HTTP_HOST'] . $suffix;
echo $folderUrl;
8. Điều này sẽ bảo vệ bạn khỏi các liên kết tượng trưng không mong muốn. Lưu ý mã này cũng thêm tiền tố HTTP hoặc HTTPS thích hợp