Làm cách nào để đưa tệp vào thư mục mẹ trong php?

Bài đăng này kết thúc bộ ba bài đăng của chúng tôi về cách lấy thông tin đường dẫn tệp và thư mục bằng PHP và WordPress. Trong bài đăng liên quan đến đường dẫn cuối cùng này, bạn sẽ có nhiều cách để lấy và bao gồm các tệp từ thư mục mẹ, thư mục con, thư mục liền kề và thậm chí là cùng một thư mục, chỉ để làm tròn mọi thứ

Nhận thư mục mẹ từ trong thư mục con

Đối với các plugin WordPress, đây là cách lấy và/hoặc bao gồm một tệp nằm trong thư mục mẹ

// get file path
echo dirname[plugin_dir_path[__FILE__]] . '/example.php';

// include file
require_once[dirname[plugin_dir_path[__FILE__]] . '/example.php'];

Lưu ý rằng bạn có thể tùy chỉnh đoạn mã này bằng cách thay đổi example.php thành tên của tệp mà bạn muốn lấy hoặc đưa vào

Tôi thường thấy rằng những thứ đơn giản là những thứ bị lãng quên hoặc không biết nhất. Gần đây, tôi đang giúp đồng nghiệp học PHP và tôi thường được hỏi về cách di chuyển lên và xuống các cấp độ thư mục liên quan đến tệp hiện tại

Tôi biết hai cách tương đối đơn giản để thực hiện việc này; .
and one using realpath[].

Chúng tôi cũng sẽ sử dụng 'Hằng số ma thuật' trong bài đăng này, nhưng tôi đã giải thích những điều này một chút ở đây một cách khéo léo

Cấp thư mục sử dụng dirname[]

Nếu bạn đang sử dụng PHP 7. 0 trở lên thì cách tốt nhất để điều hướng từ đường dẫn tệp hoặc thư mục hiện tại của bạn là sử dụng dirname[]. Hàm này sẽ trả về thư mục mẹ của bất kỳ đường dẫn nào chúng ta chuyển đến nó. Trong PHP 7 trở lên, chúng tôi có thể chỉ định số lượng cấp độ chúng tôi muốn di chuyển. Để sử dụng điều này, trước tiên chúng tôi chuyển đường dẫn tệp hoặc thư mục dưới dạng một chuỗi, sau đó chỉ định số cấp chúng tôi muốn chuyển lên từ thư mục đó

Giả sử rằng tập lệnh của chúng ta đang chạy trong /path/to/file/index. php

$dir = dirname[__DIR__, 2];

echo $dir; // Result = "/path"

Bằng cách sử dụng 'Magic Constant' '__DIR__' và chỉ định cấp độ 2, chúng tôi đang yêu cầu dirname[] trả về 2 cấp độ từ cấp độ gốc của '__DIR__'. Trong trường hợp này '__DIR__' là '/path/to/file', nên cao hơn 2 cấp là '/path'

Nhớ. dirname[] trả về thư mục mẹ, vì vậy sử dụng ‘dirname[__DIR__]’ sẽ trả về thư mục mẹ của ‘__DIR__’

Nếu chúng ta sử dụng '__FILE__' thì hơi khác một chút

$dir = dirname[__FILE__, 2];

echo $dir; // Result = "/path/to"

Vì '__FILE__' trả về tệp trong chuỗi, nên thư mục mẹ là '/path/to/file'. Bằng cách chỉ định mức 2, giờ đây chúng tôi chuyển sang ‘/path/to’ thay vào đó

Các cấp thư mục sử dụng realpath[]

Nếu bạn đang sử dụng phiên bản PHP cũ hơn thì may mắn thay, chúng ta có thể sử dụng realpath[]

'Magic Constant' '__DIR__' đã được thêm vào PHP trong 5. 3, vì vậy đối với người 5. 3 đến 5. 6 chúng ta có thể di chuyển các cấp thư mục như thế này

Một lần nữa, giả sử rằng tập lệnh của chúng ta đang chạy trong /path/to/file/index. php

$dir = realpath[__DIR__ . '/..'];

echo $dir; // Result = "/path/to"

Trong ví dụ này, realpath[] giải quyết tham chiếu ‘/. ’ liên quan đến ‘__DIR__’ và đưa chúng tôi lên 1 cấp cao hơn. Nếu chúng ta sử dụng ‘/. /. ’ sau đó chúng tôi sẽ chuyển lên 2 cấp cao hơn, v.v.

Nếu chúng ta quay trở lại xa hơn PHP 5. 3 thì chúng ta sẽ phải sử dụng realpath[], dirname[] và ‘Magic Constant’ ‘__FILE__’

Về cơ bản, realpath[] sẽ không chấp nhận tệp, chỉ chấp nhận đường dẫn. Điều này có nghĩa là chúng ta phải xóa 'chỉ mục. php' từ chuỗi '__FILE__' của chúng tôi. Có một số cách mà chúng ta có thể đạt được điều này, một trong số đó là sử dụng dirname[]

$dir = realpath[dirname[__FILE__] . '/..'];

echo $dir; // result = "/path/to"

Ví dụ này lấy thư mục mẹ của ‘__FILE__’ và sau đó giải quyết ‘/. ’ sử dụng realpath[] để di chuyển nó cao hơn 1 cấp

A key problem to hierarchical include trees is that PHP processes include paths relative to the original file, not the current including file.

________số 8

this will generate a base path relative to the current file, which will then allow an include behavior similar to C/C++.

$dir = dirname[__DIR__, 2];

echo $dir; // Result = "/path"
0

$dir = dirname[__DIR__, 2];

echo $dir; // Result = "/path"
1

$dir = dirname[__DIR__, 2];

echo $dir; // Result = "/path"
2

$dir = dirname[__DIR__, 2];

echo $dir; // Result = "/path"
3

Tôi hiện đang làm việc trên một tệp trong public_html/Directory/otherdirectory và muốn đưa tệp cấu hình vào public_html/Directory, vậy làm cách nào để đưa vào public_html/Directory/config. php trong public_html_Directory/otherdirectory/index. tập tin php? . / và. /Directory/ trong dòng bao gồm nhưng bị lỗi cả hai lần

Được chỉnh sửa vào ngày 11 tháng 4 năm 2020 bởi Nematode128

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

gizmola

Đăng ngày 11 tháng 4 năm 2020

gizmola

  • quản trị viên
    • 5. 6k
    • 33
  • Địa điểm. Los Angeles, CA Hoa Kỳ

    • Chia sẻ

Đăng ngày 11 tháng 4 năm 2020

Dựa trên mô tả của bạn

include "../config.php";

Nếu điều đó không hoạt động, thì có điều gì đó không ổn ngoài vấn đề về đường dẫn. lỗi gì bạn nhận được?

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

maxxd

Đăng ngày 11 tháng 4 năm 2020

maxxd

  • guru
    • 1. 5k
    • 32
  • Địa điểm. bắc Carolina

    • Chia sẻ

Đăng ngày 11 tháng 4 năm 2020

11 giờ trước, Nematode128 said

có lỗi cả hai lần

Nó có thể giúp đăng những lỗi đó ở đây

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

requinix

Đăng ngày 11 tháng 4 năm 2020

requinix

  • quản trị viên
    • 14. 4k
    • 297
  • Địa điểm. Mỹ/Los_Angeles

    • Chia sẻ

Đăng ngày 11 tháng 4 năm 2020

Đôi khi PHP thực hiện những điều không mong muốn khi bạn cung cấp cho nó các đường dẫn tương đối. Để hoàn toàn chắc chắn rằng bạn làm đúng, hãy tạo một đường dẫn tuyệt đối bằng cách sử dụng __DIR__ hoặc DOCUMENT_ROOT

Làm cách nào để bao gồm các tệp trong PHP từ thư mục mẹ?

Nhận thư mục mẹ từ bên trong thư mục con . '/ví dụ. php'; . include file require_once[dirname[plugin_dir_path[__FILE__]] . '/ví dụ.

Làm cách nào để chuyển đến thư mục mẹ trong PHP?

Các cấp thư mục sử dụng dirname[] . 0 trở lên thì cách tốt nhất để điều hướng từ đường dẫn tệp hoặc thư mục hiện tại của bạn là sử dụng dirname[]. Hàm này sẽ trả về thư mục mẹ của bất kỳ đường dẫn nào chúng ta chuyển đến nó.

Làm cách nào để bao gồm tệp PHP từ một thư mục khác?

Hướng dẫn từng bước về PHP bao gồm tệp từ thư mục khác. - .
Đường dẫn tương đối — Đường dẫn dựa trên thư mục làm việc hiện tại dưới dạng "viết tắt. "
Đường dẫn tuyệt đối — Đường dẫn đầy đủ của tệp
Vâng, đường dẫn tuyệt đối nên hiển nhiên. Mặt khác, đường dẫn tương đối là đường dẫn mà hầu hết những người mới bắt đầu đều mắc sai lầm

Các cách để bao gồm tệp trong PHP là gì?

Có thể chèn nội dung của một tệp PHP vào một tệp PHP khác [trước khi máy chủ thực thi nó], với câu lệnh bao gồm hoặc yêu cầu. The include and require statements are identical, except upon failure: require will produce a fatal error [E_COMPILE_ERROR] and stop the script.

Chủ Đề