PHP cơ sở_path
Tùy thuộc vào cấu hình máy chủ của bạn, việc lấy thông tin đường dẫn chính xác có thể là một thách thức. Ví dụ: PHP không cung cấp biến sẽ trả về URL cơ sở của trang web của bạn. Để trợ giúp, bạn có thể sử dụng các đoạn mã sau để nhận đường dẫn tuyệt đối, gốc tài liệu và URL cơ sở tương ứng Show
Lấy đường dẫn tuyệt đốiNếu tập lệnh của bạn được bao gồm trong
trả về một cái gì đó như thế này (tùy thuộc vào đường dẫn máy chủ thực tế)
Lưu ý rằng kết quả không bao gồm dấu gạch chéo Lấy tài liệu gốcCách dễ nhất, sạch nhất để lấy tài liệu gốc
mà trả về một cái gì đó giống như 0Lưu ý rằng kết quả không bao gồm dấu gạch chéo Ngoài ra, bạn có thể làm điều này
Cách thứ nhất được ưu tiên, cách thứ hai là thông tin của bạn Nhận URL cơ sở của tập lệnh hiện tạiĐoạn mã này trả về URL cơ sở của tập lệnh hiện tại. Vì vậy, giả sử rằng tập lệnh của chúng tôi được đưa vào bên trong 2. Để lấy URL cơ sở, hãy áp dụng đoạn mã sau base_path() thêm dấu "/" vào đầu và cuối đường dẫn trả về nếu đường dẫn không trống. Ít nhất, điều này sẽ trả về "/" ví dụ 36 cuộc gọi đến base_path() 10 chuỗi tham chiếu đến 'base_path'Tập tincốt lõi/bao gồm/chung. inc, line 3318Các hàm thông dụng mà nhiều module Backdrop cần tham khảoMã số Xác định gốc tài liệu, còn được gọi là đường dẫn cơ sở, rất quan trọng khi bạn muốn bao gồm các tệp hoặc làm việc với hệ thống tệp; 1438 lượt xem Bởi. Jacob Đã chỉnh sửa. 2021-02-28 16. 14 Khi bao gồm các tệp hoặc làm việc với hệ thống tệp từ các tập lệnh PHP, cách tốt nhất là sử dụng các đường dẫn tuyệt đối; . Thay vào đó, bây giờ tôi xác định BASE_PATH của riêng mình ở gốc thành phần của các dự án của tôi (Thông thường chỉ mục. tệp php) Vấn đề là gốc tài liệu có thể không đề cập đến những gì chúng ta mong đợi và nó cũng có những điểm không nhất quán khác, chẳng hạn như thiếu dấu gạch chéo đuôi trên các thư mục. Để tránh điều này, bây giờ tôi xác định biến đường dẫn cơ sở của riêng mình, sử dụng dấu gạch chéo lên làm dấu phân cách thư mục — và đối với các thư mục, dấu gạch chéo đuôi luôn được bao gồm Tất cả các đường dẫn phải được viết bằng cách sử dụng dấu gạch chéo lên làm dấu tách thư mục, vì điều này được hầu hết các hệ thống hỗ trợ Windows cũng sẽ hoạt động tốt khi sử dụng dấu gạch chéo lên — trên thực tế, ngay cả khi sử dụng kết hợp dấu gạch chéo ngược và dấu gạch chéo lên cũng sẽ hoạt động tốt — để đảm bảo tính nhất quán, tuy nhiên, tốt nhất là chúng ta nên sử dụng giống nhau trong toàn bộ mã Một lý do khác cho chính sách này là dấu gạch chéo ngược có thể gây ra sự cố trong một số trường hợp, vì dấu gạch chéo ngược có ý nghĩa đặc biệt trong PHP và do đó cần phải thoát khi được sử dụng trong đường dẫn, ngay cả khi được sử dụng trong dấu nháy đơn Từ PHP5. 3 trở đi, chúng ta có thể sử dụng __DIR__ define('BASE_PATH', rtrim(preg_replace('#[/\\\\]{1,}#', '/', __DIR__), '/') . '/'); Trong các phiên bản cũ hơn define('BASE_PATH', rtrim(preg_replace('#[/\\\\]{1,}#', '/', realpath(dirname(__FILE__))), '/') . '/'); Xử lý bao gồmỞ đầu tệp chỉ mục, chúng tôi thường xác định hằng số BASE_PATH. Hằng số này có thể được sử dụng khi bao gồm các tệp thông qua bao gồm hoặc yêu cầu và cũng có thể được truy cập từ bên trong các tệp được bao gồm, mặc dù điều này tốt nhất nên tránh Nếu một số phương thức lớp phụ thuộc vào BASE_PATH, có lẽ tốt hơn là chuyển nó làm đối số cho phương thức hoặc thông qua phép nội xạ phụ thuộc thông qua một đối tượng cài đặt Dưới đây là một ví dụ về cách BASE_PATH được xác định define('BASE_PATH', rtrim(preg_replace('#[/\\\\]{1,}#', '/', realpath(dirname(__FILE__))), '/') . '/'); Mã hoạt động như thế này
Tự động bao gồm các tập tinHiện tại, các nhà phát triển cần nhớ sử dụng dấu gạch chéo lên một cách nhất quán. Đây không phải là một vấn đề lớn vì hầu hết có thể sẽ phát triển trên Linux. Tuy nhiên, một giải pháp có thể là bao gồm các tệp thông qua một chức năng hoặc trình tải nội dung thay thế Đây không phải là điều chúng tôi hiện đang làm, nhưng nó cũng sẽ là một cách hữu ích để bao gồm các tệp động nếu đây là điều chúng tôi có thể cần trong tương lai $files_to_include = array( BASE_PATH . 'lib/db_class/db_class.php', BASE_PATH . 'lib/translator/translator_class.php' ); function dynamic_require($files_array) { foreach ($files_array as $file) { require preg_replace('#[/\]{1}#', '/', $file); } } DIRECTORY_SEPARATOR không được khuyến nghịCác nhà phát triển không nên sử dụng DIRECTORY_SEPARATOR, vì hầu hết các hệ thống sẽ hiểu rõ dấu gạch chéo về phía trước. Vẫn có thể có những trường hợp thích hợp mà nó có thể hữu ích, nhưng chúng tôi tránh nó để bao gồm DIRECTORY_SEPARATOR là hằng số được xác định trước trong PHP. Nó chứa trình phân tách thư mục mặc định được sử dụng trên hệ thống nơi tập lệnh đang chạy Đường dẫn cơ sở PHP là gì?Việc xác định Gốc tài liệu , còn được gọi là Đường dẫn cơ sở, rất quan trọng khi bạn muốn bao gồm các tệp hoặc làm việc với hệ thống tệp; . 1388 lượt xem. đã chỉnh sửa. 2021-02-28 16. 14.
Làm cách nào để đặt đường dẫn của tệp trong PHP?ini, hãy làm theo các bước sau. . mở php. ini trong trình chỉnh sửa. . Thêm dòng sau vào php. tập tin ini. Thay thế tên người dùng bằng tên người dùng Dịch vụ lưu trữ A2 của bạn và thay thế thư mục bao gồm bằng tên của thư mục bao gồm. bao_path = ". /home/tên người dùng/gồm_thư mục" Lưu các tập tin. Đường dẫn bao gồm hiện được đặt Làm cách nào để lấy đường dẫn của một thư mục trong PHP?Để lấy đường dẫn thư mục gốc, bạn có thể sử dụng _DIR_ hoặc dirname() . echo dirname(__FILE__); .
Làm cách nào để lấy tệp từ đường dẫn trong PHP?Cú pháp. $filename = pathinfo(path); Ví dụ. Ví dụ này giải thích hàm pathinfo() sẽ trả về thông tin về đường dẫn. Ở đây, chúng tôi sẽ sử dụng $filename['basename'], khi chúng tôi muốn truy cập tên tệp. |