Php bao gồm đường dẫn từ root

Tuyên bố tệp bao gồm PHP

bao gồm 'myfile. php';


PHP bao gồm tệp từ thư mục gốc (thư mục) - đường dẫn tương đối

bao gồm (tên thư mục (__DIR__). '/. / tập tin của tôi. php');



PHP Bao gồm tệp từ thư mục ROOT

bao gồm($_SERVER['DOCUMENT_ROOT']. "/tập tin của tôi. php");


PHP Bao gồm tệp thư mục sâu hơn sau đó ROOT - đường dẫn tuyệt đối

$root = realpath($_SERVER["DOCUMENT_ROOT"]);include "$root/folder1/folder2/myfile. php";


Bài viết này mô tả một số phương pháp để đặt đường dẫn bao gồm trong PHP. Bằng cách sử dụng các đường dẫn bao gồm, bạn có thể tập trung mã mà trang web của bạn thường xuyên sử dụng. Ngoài ra, một số tính năng, chẳng hạn như PEAR, yêu cầu bạn đặt đường dẫn bao gồm để PHP có thể định vị các tệp thích hợp

Bạn nên tạo thư mục bao gồm ở cấp thư mục tên người dùng (nghĩa là, một cấp trên thư mục public_html). Điều này đảm bảo rằng các tệp nhạy cảm không nằm trong thư mục public_html mà bất kỳ ai cũng có thể truy cập

Phương pháp số 1. Sử dụng Bộ chọn PHP trong cPanel

Nếu tài khoản lưu trữ của bạn bao gồm Bộ chọn cPanel PHP, đây là cách dễ nhất để thay đổi đường dẫn bao gồm. Để làm điều này, hãy làm theo các bước sau

  1. Đăng nhập vào cPanel

    Nếu bạn chưa biết cách đăng nhập tài khoản cPanel thì xem bài viết này

  2. Trong phần PHẦN MỀM của màn hình chính cPanel, nhấp vào Chọn phiên bản PHP

    Php bao gồm đường dẫn từ root

  3. Trên trang Bộ chọn PHP, nhấp vào tab Tùy chọn

    Php bao gồm đường dẫn từ root

  4. Trong Tùy chọn PHP, cuộn xuống tùy chọn include_path

    Php bao gồm đường dẫn từ root

  5. Trong hộp văn bản, nhập đường dẫn bao gồm

    Bạn có thể tách nhiều thư mục bằng dấu hai chấm. Ví dụ: để chỉ định thư mục hiện tại (. ) và thư mục /home/username trong đường dẫn bao gồm, gõ. /home/tên người dùng

  6. Nhấp vào bất kỳ đâu trên trang. cPanel lưu đường dẫn bao gồm mới, có hiệu lực ngay lập tức

Phương pháp #2. Sử dụng một php tùy chỉnh. tập tin ini

Bạn có thể sử dụng một php tùy chỉnh. ini để chỉ định đường dẫn bao gồm. Nếu bạn chưa thiết lập một php tùy chỉnh. ini, vui lòng đọc bài viết này trước khi bạn tiếp tục

Để đặt đường dẫn bao gồm bằng php tùy chỉnh. ini, hãy làm theo các bước sau

  1. mở php. ini trong trình chỉnh sửa. Bạn có thể thực hiện việc này bằng cách đăng nhập vào tài khoản của mình qua SSH hoặc bằng cách sử dụng Trình quản lý tệp cPanel
  2. 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 A2 Hosting của bạn và thay thế include_directory bằng tên của thư mục bao gồm.
    include_path = ".:/home/username/include_directory"
  3. Lưu các tập tin. Đường dẫn bao gồm hiện được đặt

Phương pháp #3. Sử dụng hàm set_include_path()

Thay vì đặt đường dẫn bao gồm trên toàn cầu trong tệp cấu hình, bạn có thể đặt đường dẫn trực tiếp trong tệp tập lệnh. Để làm điều này, bạn sử dụng hàm set_include_path()

Khi bạn đặt đường dẫn bao gồm bằng phương pháp này, nó chỉ có hiệu lực trong thời gian thực thi tập lệnh. Đường dẫn bao gồm mà bạn chỉ định không ảnh hưởng đến bất kỳ tập lệnh đang chạy nào khác

Mã mẫu sau minh họa cách đặt đường dẫn bao gồm bằng cách sử dụng hàm set_include_path(). Thay thế tên người dùng bằng tên người dùng A2 Hosting của bạn

Phương pháp #4. Sử dụng. tập tin htaccess

Một số VPS và máy chủ chuyên dụng của chúng tôi sử dụng các mô-đun Apache thay vì các tệp nhị phân CGI để chạy PHP. Nếu máy chủ của bạn sử dụng mô-đun Apache để chạy PHP, bạn có thể sửa đổi. htaccess trong thư mục gốc tài liệu trang web của bạn

If you find that this function is failing for you, and you're not sure why, you may have set your php include path in your sites's conf file in Apache  (this may be true of .htaccess as well)

So to get it to work, comment out any "php_value include_path" type lines in your Apache conf file, and you should be able to set it now in your php code.

Các tệp được bao gồm dựa trên đường dẫn tệp được cung cấp hoặc, nếu không có đường dẫn nào được cung cấp, thì đường dẫn bao gồm được chỉ định. Nếu tệp không được tìm thấy trong đường dẫn bao gồm, thì cuối cùng, include sẽ kiểm tra thư mục riêng của tập lệnh gọi và thư mục làm việc hiện tại trước khi thất bại. Cấu trúc include sẽ phát ra một E_WARNING nếu nó không thể tìm thấy tệp;

Lưu ý rằng cả includerequire đều tăng các E_WARNING bổ sung, nếu không thể truy cập tệp, trước khi tăng lần lượt các E_WARNING hoặc E_ERROR cuối cùng

Nếu một đường dẫn được xác định — cho dù là tuyệt đối (bắt đầu bằng ký tự ổ đĩa hoặc include0 trên Windows hoặc include1 trên hệ thống Unix/Linux) hoặc liên quan đến thư mục hiện tại (bắt đầu bằng include2 hoặc include3) — thì đường dẫn bao gồm sẽ bị bỏ qua hoàn toàn. Ví dụ: nếu tên tệp bắt đầu bằng include4, trình phân tích cú pháp sẽ tìm trong thư mục mẹ để tìm tệp được yêu cầu

Để biết thêm thông tin về cách PHP xử lý bao gồm các tệp và đường dẫn bao gồm, hãy xem tài liệu về include_path

Khi một tệp được bao gồm, mã chứa trong đó sẽ kế thừa phạm vi biến của dòng mà việc bao gồm xảy ra. Mọi biến có sẵn tại dòng đó trong tệp đang gọi sẽ có sẵn trong tệp được gọi, kể từ thời điểm đó trở đi. Tuy nhiên, tất cả các hàm và lớp được định nghĩa trong tệp đi kèm đều có phạm vi toàn cầu

Ví dụ #1 Ví dụ cơ bản về include

include6

include7

include8

include9

include0

include1

include2

include8

Nếu việc bao gồm xảy ra bên trong một hàm trong tệp gọi, thì tất cả mã có trong tệp được gọi sẽ hoạt động như thể nó đã được xác định bên trong hàm đó. Vì vậy, nó sẽ tuân theo phạm vi biến của hàm đó. Một ngoại lệ đối với quy tắc này là các hằng số ma thuật được trình phân tích cú pháp đánh giá trước khi bao gồm xảy ra

Ví dụ #2 Bao gồm trong các chức năng

include4

include5

include6

include7

include8

include8

Khi một tệp được bao gồm, quá trình phân tích cú pháp sẽ thoát khỏi chế độ PHP và chuyển sang chế độ HTML ở phần đầu của tệp đích và tiếp tục lại ở phần cuối. Vì lý do này, bất kỳ mã nào bên trong tệp đích sẽ được thực thi dưới dạng mã PHP phải được đặt trong các thẻ bắt đầu và kết thúc PHP hợp lệ

Nếu "Trình bao bọc bao gồm URL" được bật trong PHP, bạn có thể chỉ định tệp được bao gồm bằng cách sử dụng URL (thông qua HTTP hoặc trình bao bọc được hỗ trợ khác - xem Giao thức và Trình bao bọc được hỗ trợ để biết danh sách các giao thức) thay vì tên đường dẫn cục bộ. Nếu máy chủ đích diễn giải tệp đích dưới dạng mã PHP, các biến có thể được chuyển đến tệp được bao gồm bằng cách sử dụng chuỗi yêu cầu URL như được sử dụng với HTTP GET. Điều này không hoàn toàn giống với việc bao gồm tệp và để nó kế thừa phạm vi biến của tệp mẹ;

Ví dụ #3 include thông qua HTTP

E_WARNING1

E_WARNING2

E_WARNING3

E_WARNING4

Cảnh báo

Tệp từ xa có thể được xử lý tại máy chủ từ xa (tùy thuộc vào phần mở rộng của tệp và thực tế máy chủ từ xa có chạy PHP hay không) nhưng nó vẫn phải tạo tập lệnh PHP hợp lệ vì nó sẽ được xử lý tại máy chủ cục bộ. Nếu tệp từ máy chủ từ xa chỉ được xử lý ở đó và chỉ xuất ra, readfile() là chức năng tốt hơn nhiều để sử dụng. Mặt khác, cần đặc biệt cẩn thận để bảo mật tập lệnh từ xa để tạo mã hợp lệ và mong muốn

Xem thêm Tệp từ xa, fopen() và tệp() để biết thông tin liên quan

xử lý hàng trả lại. include trả lại E_WARNING6 khi thất bại và đưa ra cảnh báo. Thành công bao gồm, trừ khi bị ghi đè bởi tệp được bao gồm, trả về E_WARNING7. Có thể thực thi một câu lệnh return bên trong một tệp được bao gồm để kết thúc quá trình xử lý trong tệp đó và quay lại tập lệnh đã gọi nó. Ngoài ra, có thể trả về các giá trị từ các tệp được bao gồm. Bạn có thể lấy giá trị của lệnh gọi bao gồm như đối với một chức năng bình thường. Tuy nhiên, điều này không thể thực hiện được khi bao gồm các tệp từ xa trừ khi đầu ra của tệp từ xa có các thẻ bắt đầu và kết thúc PHP hợp lệ (như với bất kỳ tệp cục bộ nào). Bạn có thể khai báo các biến cần thiết trong các thẻ đó và chúng sẽ được giới thiệu tại bất kỳ thời điểm nào mà tệp được đưa vào

Bởi vì include là một cấu trúc ngôn ngữ đặc biệt, không cần có dấu ngoặc đơn xung quanh đối số của nó. Hãy cẩn thận khi so sánh giá trị trả lại

Ví dụ #4 So sánh giá trị trả về của bao gồm

E_WARNING9

E_ERROR0

Ví dụ #5 include và câu lệnh return

E_ERROR2

E_ERROR3

E_ERROR4

include8

E_ERROR6

E_ERROR3

include8

E_ERROR9

include0

include1

include2

include3

include8

include5 là giá trị E_WARNING7 vì bao gồm thành công. Lưu ý sự khác biệt giữa các ví dụ trên. Cái đầu tiên sử dụng trả về trong tệp được bao gồm trong khi cái kia thì không. Nếu không thể bao gồm tệp, include7 được trả lại và E_WARNING được cấp

Nếu có các chức năng được xác định trong tệp được bao gồm, chúng có thể được sử dụng độc lập trong tệp chính nếu chúng ở trước hoặc sau. Nếu tệp được bao gồm hai lần, PHP sẽ phát sinh lỗi nghiêm trọng vì các chức năng đã được khai báo. Bạn nên sử dụng include_once thay vì kiểm tra xem tệp đã được bao gồm chưa và trả lại có điều kiện bên trong tệp được bao gồm

Một cách khác để "đưa" tệp PHP vào một biến là nắm bắt đầu ra bằng cách sử dụng Hàm điều khiển đầu ra với include. Ví dụ

Ví dụ #6 Sử dụng bộ đệm đầu ra để đưa tệp PHP vào một chuỗi

require0

require1

include8

Để tự động bao gồm các tệp trong tập lệnh, hãy xem thêm các tùy chọn cấu hình auto_prepend_file và auto_append_file trong php. ban đầu

Ghi chú. Bởi vì đây là một cấu trúc ngôn ngữ và không phải là một hàm, nó không thể được gọi bằng cách sử dụng các hàm biến hoặc các đối số được đặt tên

Xem thêm yêu cầu, yêu cầu_once, bao gồm_once, get_included_files(), readfile(), virtual() và include_path

Làm cách nào tôi có thể nhận đường dẫn thư mục gố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__); .

Bao gồm_đường dẫn PHP là gì?

Đường dẫn bao gồm PHP là một tập hợp các vị trí được sử dụng để tìm tài nguyên được tham chiếu bởi các câu lệnh bao gồm/yêu cầu .

Làm cách nào tôi có thể truy cập root trong PHP?

Đường dẫn gốc PHP. Sử dụng Dirname() Với __DIR__ . Hằng số đã cho sẽ trả về đường dẫn của thư mục hiện tại của bạn và hàm dirname() sẽ trả về thư mục gốc PHP của cùng.

$_ máy chủ [' DOCUMENT_ROOT '] là gì?

$_ máy chủ DOCUMENT_ROOT trong PHP là gì? . Thư mục gốc của tài liệu mà tập lệnh hiện tại đang thực thi, như được xác định trong tệp cấu hình của máy chủ . 15-Nov-2012.