Php lấy đường dẫn tập lệnh hiện tại

Các nhà phát triển hiện đại thường tìm kiếm các giải pháp hợp lý cho vấn đề lấy đường dẫn tuyệt đối đến tập lệnh chạy ban đầu

Chúng tôi đã chọn giải pháp chính xác và có giá trị nhất cho vấn đề. Chỉ cần kiểm tra ví dụ dưới đây

Phương pháp chính xác nhất để lấy đường dẫn tuyệt đối tới tập lệnh chạy ban đầu trong PHP là sử dụng hàm get_included_files

Đây là một ví dụ về việc sử dụng nó

hàm get_included_files

list($scriptPath) = get_included_files();

Sau khi sử dụng chức năng này, bạn sẽ nhận được đường dẫn tuyệt đối của tập lệnh ngay cả trong các trường hợp sau

  • chức năng nằm trong một tệp được bao gồm;
  • thư mục tập lệnh ban đầu khác với thư mục làm việc hiện tại;
  • dưới dạng đường dẫn tương đối, CLI được áp dụng để chạy tập lệnh

Bây giờ hãy xem hai kịch bản. Một trong số chúng là tệp được bao gồm và một tệp khác là tập lệnh chính

Kết quả sẽ như sau

C:\>php C:\Users\Redacted\Desktop\main.php The script being run is C:\Users\Redacted\Desktop\main.php

Chức năng này được hỗ trợ bởi các phiên bản PHP 4, PHP 5 và PHP 7

Nó có khả năng trả về một mảng với cách đặt tên của các tệp được yêu cầu hoặc được bao gồm

Tập lệnh được gọi ban đầu được gọi là tệp được bao gồm. Do đó, nó được liệt kê cùng với các tệp được tham chiếu bởi bao gồm và họ

Tất cả các tệp được yêu cầu hoặc bao gồm nhiều lần sẽ chỉ xuất hiện một lần trong mảng được trả về

Tập lệnh của bạn có thể cần tên tệp hiện tại với tên thư mục mà nó hiện đang thực thi. Trong bài viết hướng dẫn này, chúng ta sẽ thảo luận về cách lấy tên tệp của tập lệnh hiện tại bên trong dự án

PHP cung cấp nhiều cách khác nhau để tìm ra tên tệp hiện tại. Đầu tiên chúng ta sẽ hiểu ngắn gọn tất cả các tham số & phương thức sau đó kết hợp chúng lại để có được kết quả

Hình ảnh được cung cấp bởi Lawrence Monk từ Pixabay

__TẬP TIN__

PHP cung cấp 9 hằng số kỳ diệu được sử dụng trên cơ sở sử dụng chúng. Các hằng số này được tạo bởi các phần mở rộng khác nhau. Tất cả các hằng số này được giải quyết trong thời gian biên dịch. __FILE__ là một trong những hằng số kỳ diệu cung cấp cho bạn đường dẫn hệ thống tệp đến hiện tại. tập tin php

$_SERVER

$_SERVER là một mảng chứa thông tin về tiêu đề, đường dẫn và vị trí tập lệnh. Tất cả thông tin này được tạo bởi máy chủ web

PHP_SELF

PHP_SELF là một biến được sử dụng để lấy tên tệp của tập lệnh hiện đang thực thi. Nó liên quan đến gốc tài liệu. Khi người dùng chạy lệnh này trong dòng lệnh, nó sẽ in thông tin về tên tập lệnh

SCRIPT_FILENAME

Đây là một biến được sử dụng để lấy tên tệp của tập lệnh hiện đang thực thi, điểm khác biệt duy nhất là đường dẫn của nó là tuyệt đối

SCRIPT_NAME

Chứa đường dẫn của tập lệnh hiện tại. Điều này hữu ích cho các trang cần trỏ đến chính chúng

REQUEST_URI

URI được cung cấp để truy cập vị trí của trang;

Bây giờ, hãy cùng nhau sử dụng tất cả các lệnh trên để lấy tên tệp

  1. $_SERVER[‘SCRIPT_NAME’].
    Tên tệp mẹ có phần mở rộng tệp
  2. $_SERVER[‘PHP_SELF’].
    URL tương đối của tệp gốc với phần mở rộng tệp. Ví dụ: http. //thí dụ. com/parentFolder/con. php sẽ là /parentFolder/con. php.
  3. $_SERVER[‘SCRIPT_FILENAME’].
    URL đầy đủ của tệp mẹ có phần mở rộng tệp
  4. $_SERVER[‘REQUEST_URI’].
    tên thư mục mẹ của tệp mẹ với

basename()

Hàm PHP sẵn có này trả về tên cơ sở của tệp nếu đường dẫn của tệp được cung cấp dưới dạng tham số cho hàm basename()

  1. basename(__FILE__)
    Tên tệp hiện tại có phần mở rộng tệp PHP.
  2. tên cơ sở(__FILE__, '. php').
    Tên tệp hiện tại không có phần mở rộng tệp PHP.
  3. tên cơ sở($_SERVER[‘PHP_SELF’], “. php”).
    Tên tệp hiện tại không có phần mở rộng tệp PHP.
  4. tên cơ sở($_SERVER[‘PHP_SELF’]).
    Tên tệp hiện tại có phần mở rộng tệp PHP.
  5. thông tin đường dẫn(__FILE__, PATHINFO_FILENAME).
    Tên tệp hiện tại không có phần mở rộng tệp PHP.

Hãy chạy tất cả các lệnh trên

echo "\$_SERVER['SCRIPT_NAME']: ";echo $_SERVER['SCRIPT_NAME'];echo "\n";
echo "\$_SERVER['PHP_SELF']: ";echo $_SERVER['PHP_SELF'];echo "\n";echo "\$_SERVER['SCRIPT_FILENAME']: ";echo $_SERVER['SCRIPT_FILENAME'];echo "\n";echo "basename(__FILE__): ";echo basename(__FILE__);echo "\n";echo "basename(__FILE__, '.php'): ";echo basename(__FILE__, '.php');echo "\n";echo "basename(\$_SERVER['PHP_SELF'], '.php'): ";echo basename($_SERVER['PHP_SELF'], '.php');echo "\n";echo "basename(\$_SERVER['PHP_SELF']): ";echo basename($_SERVER['PHP_SELF']);echo "\n";echo "pathinfo(__FILE__, PATHINFO_FILENAME): ";echo pathinfo(__FILE__, PATHINFO_FILENAME);echo "\n";?>

Phần kết luận

Có nhiều chức năng khác nhau có sẵn để lấy tên của tệp hiện tại. Bạn có thể chọn tùy thuộc vào yêu cầu của bạn

Làm cách nào để có được đường dẫn hiện tại trong PHP?

Hàm getcwd() trả về thư mục làm việc hiện tại.

Làm cách nào để lấy tên của tập lệnh hiện tại trong PHP?

Cách lấy tên chạy tập lệnh hiện tại của tệp trong PHP .
$file = $_SERVER["SCRIPT_NAME"]; .
/my_file/kiểm tra. php. .
$break = Phát nổ('/', $file); .
$file = $_SERVER["SCRIPT_NAME"]; .
kiểm tra. php. Một cách dễ dàng khác là sử dụng tên cơ sở của pathinfo

Làm cách nào để sử dụng __ TRỰC TIẾP __ trong PHP?

Có thể sử dụng __DIR__ để lấy thư mục làm việc của mã hiện tại . Nó đã được giới thiệu trong PHP bắt đầu từ phiên bản 5. 3. Nó tương tự như sử dụng dirname(__FILE__). Thông thường, nó được sử dụng để bao gồm các tệp khác có trong một tệp được bao gồm.

__ tệp __ trong PHP là gì?

__FILE__ Đường dẫn đầy đủ và tên tệp của tệp có liên kết tượng trưng được giải quyết . Nếu được sử dụng bên trong một tệp bao gồm, tên của tệp được bao gồm sẽ được trả về. __DIR__ Thư mục của tệp.