Dir_name trong PHP là gì?

Tôi thậm chí có thể có một lời giải thích đơn giản hơn cho câu hỏi này so với câu trả lời được chấp nhận, vì vậy tôi sẽ thử. Giả sử đây là cấu trúc của các tệp và thư mục của một dự án

Project root directory:
                       file1.php
                       file3.php
                       dir1/
                            file2.php

(dir1 là một thư mục và file2.php nằm trong đó)

Và đây là nội dung của từng file trong 3 file trên

//file1.php:

Now run file1.php và thử đoán xem chuyện gì sẽ xảy ra. Bạn có thể thấy "Xin chào, Kiểm tra. ", tuy nhiên, nó sẽ không được hiển thị. Thay vào đó, những gì bạn sẽ nhận được sẽ là một lỗi cho biết tệp bạn đã yêu cầu (file3.php) không tồn tại

Lý do là, bên trong file1.php khi bạn bao gồm file2.php, nội dung của nó sẽ được sao chép và sau đó được dán trực tiếp trở lại vào file1.php bên trong thư mục gốc, do đó, phần này

//file1.php:
0 chạy từ thư mục gốc và do đó đi lên một thư mục gốc. (và rõ ràng là nó sẽ không tìm thấy file3.php)

Bây giờ, chúng ta nên làm gì?

Đường dẫn tương đối tất nhiên có vấn đề ở trên, vì vậy chúng tôi phải sử dụng đường dẫn tuyệt đối. Tuy nhiên, đường dẫn tuyệt đối cũng có một vấn đề. Nếu bạn (ví dụ) sao chép thư mục gốc (chứa toàn bộ dự án của bạn) và dán nó vào bất kỳ nơi nào khác trên máy tính của bạn, các đường dẫn sẽ không hợp lệ kể từ thời điểm đó. Và đó sẽ là một MESS THỰC SỰ

Vì vậy, chúng tôi cần các đường dẫn vừa tuyệt đối vừa động (Mỗi tệp tự động tìm thấy đường dẫn tuyệt đối của chính nó ở bất cứ nơi nào chúng tôi đặt nó)

Cách chúng tôi làm điều đó là nhận trợ giúp từ PHP và

//file1.php:
2 là chức năng cần thực hiện, cung cấp đường dẫn tuyệt đối tới thư mục chứa tệp trong đó. Và mỗi tên tệp cũng có thể được truy cập dễ dàng bằng cách sử dụng hằng số
//file1.php:
3. Vì vậy,
//file1.php:
4 sẽ dễ dàng cung cấp cho bạn giá trị tuyệt đối (trong khi động. ) đường dẫn đến tệp chúng tôi đang nhập mã ở trên. Bây giờ hãy di chuyển toàn bộ dự án của bạn đến một nơi mới hoặc thậm chí là một hệ thống mới và tada. nó hoạt động

Vì vậy, bây giờ nếu chúng ta biến dự án ở trên thành cái này

//file1.php:
//file1.php:
5. (hy vọng, nếu bạn không làm gì khác sai)

Điều đáng nói là từ PHP5, một cách hay hơn (liên quan đến khả năng đọc và ngăn ngừa sôi mắt. ) cũng đã được cung cấp bởi PHP, đó là hằng số

//file1.php:
6 thực hiện chính xác điều tương tự như
//file1.php:
4

dirname(__FILE__)

dirname là một hàm trong php trả về đường dẫn thư mục đầy đủ của tệp

Ví dụ

$file = “/htdocs/projects/testapplication/demotest. php”;

$path = dirname($file);

?>

Đầu ra sẽ là “/htdocs/projects/testapplication/”

__FILE__  là hằng số trong php chỉ định tập lệnh đang chạy hiện tại

Vì vậy  dirname(__FILE__) trả về đường dẫn thư mục đầy đủ của tập lệnh đang chạy hiện tại

Ví dụ

Giả sử trong   “/htdocs/projects/testapplication/demodet. php” tôi đã chỉ định tệp này   dirname(__FILE__)

Điều này sẽ trả về “/htdocs/projects/testapplication/”

tên cơ sở (tên thư mục (__FILE__))

Lệnh basename() thường được sử dụng cùng với hàm dirname() để tách thư mục mẹ khỏi tên tệp đầy đủ. Ví dụ: “/var/www/html/abc. txt” khi được truyền qua basename() sẽ trả về abc. txt. tên cơ sở () cũng hoạt động trên các thư mục. Vì vậy, basename() trên “/var/www/html” sẽ trả về “html” vì trong thư mục Linux là các tệp

Bản tóm tắt. trong hướng dẫn này, bạn sẽ học cách sử dụng hàm PHP dirname() để lấy đường dẫn thư mục mẹ của tệp hoặc đường dẫn thư mục

Giới thiệu về hàm PHP dirname()

Hàm dirname() chấp nhận một đường dẫn và trả về đường dẫn của thư mục mẹ

dirname ( string $path , int $levels = 1 ) : string

Code language: PHP (php)

Hàm dirname() có hai tham số

  • $path là đường dẫn tệp hoặc thư mục mà bạn muốn lấy đường dẫn thư mục của cha mẹ
  • $levels là số lượng thư mục mẹ tăng lên. $levels phải là một số nguyên lớn hơn 0

dirname() trả về đường dẫn của thư mục mẹ là $levels lên từ thư mục hiện tại

Lưu ý rằng bạn có thể sử dụng cả dấu gạch chéo (

<?php echo '1.' , dirname("/htdocs/public") , PHP_EOL; echo '2.' , dirname("/htdocs/") , PHP_EOL; echo '3.' , dirname(".") , PHP_EOL; echo '4.' , dirname("C:\\") , PHP_EOL; echo '5.' , dirname("/htdocs/public/css/dev", 2);

Code language: HTML, XML (xml)
1) và dấu gạch chéo ngược (

<?php echo '1.' , dirname("/htdocs/public") , PHP_EOL; echo '2.' , dirname("/htdocs/") , PHP_EOL; echo '3.' , dirname(".") , PHP_EOL; echo '4.' , dirname("C:\\") , PHP_EOL; echo '5.' , dirname("/htdocs/public/css/dev", 2);

Code language: HTML, XML (xml)
2) làm ký tự phân tách thư mục trên Windows và dấu gạch chéo lên (

<?php echo '1.' , dirname("/htdocs/public") , PHP_EOL; echo '2.' , dirname("/htdocs/") , PHP_EOL; echo '3.' , dirname(".") , PHP_EOL; echo '4.' , dirname("C:\\") , PHP_EOL; echo '5.' , dirname("/htdocs/public/css/dev", 2);

Code language: HTML, XML (xml)
1) trên các môi trường khác như Linux và macOS

dirname (__ tệp __) trong PHP là gì?

dirname(__FILE__) cho phép bạn có được một đường dẫn tuyệt đối (và do đó tránh tìm kiếm đường dẫn bao gồm) mà không cần dựa vào thư mục làm việc là thư mục trong đó bootstrap. php cư trú. (Ghi chú. kể từ PHP 5. 3, bạn có thể sử dụng __DIR__ thay cho dirname(__FILE__). )

dirname (__ TRỰC TIẾP __) là gì?

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.

Làm cách nào để lấy tên của một thư mục trong PHP?

PHP sử dụng scandir() để tìm các thư mục trong một thư mục . Hàm scandir là một hàm sẵn có trả về một mảng các tệp và thư mục của một thư mục cụ thể. is_dir() or is_file() can be used. The scandir function is an inbuilt function that returns an array of files and directories of a specific directory.

dirname (__ tệp __) là gì?

dirname là một hàm trong php trả về đường dẫn thư mục đầy đủ của tệp. __FILE__ là một hằng số trong php chỉ định tập lệnh đang chạy hiện tại. Vì vậy, dirname(__FILE__) trả về đường dẫn thư mục đầy đủ của tập lệnh đang chạy hiện tại .