Bạn có thể đến gốc từ trong mỗi trang web bằng cách sử dụng
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';
7. Để chỉ thử nghiệm, bạn có thể lặp lại con đường để đảm bảo nó hoạt động, nếu bạn làm đúng cách. Bạn không bao giờ muốn hiển thị các đường dẫn máy chủ cục bộ cho những thứ như bao gồm và yêu cầu.For testing ONLY you can echo out the path to make sure it's working, if you do it the right way. You NEVER want to show the local server paths for things like includes and
requires.Trang web 1
echo $_SERVER['DOCUMENT_ROOT']; //should be '/main_web_folder/';
Bao gồm trong trang web một sẽ ở:
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';
Trang web 2
echo $_SERVER['DOCUMENT_ROOT']; //should be '/main_web_folder/blog/';
Mã thực tế để truy cập bao gồm từ SITE1 bên trong trang2 mà bạn sẽ nói:
include[$_SERVER['DOCUMENT_ROOT'].'/../includes/file_from_site_1.php'];
Nó sẽ chỉ sử dụng đường dẫn tương đối của tệp thực hiện truy vấn nếu bạn cố gắng truy cập nó bằng cách loại trừ
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';
8 và echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';
9 SLASH: //[not as fool-proof or non-platform specific]
include['../includes/file_from_site_1.php'];
Các đường dẫn bao gồm không có vị trí trong mã ở mặt trước [trực tiếp] của trang web ở bất cứ đâu, và chỉ nên được bảo mật và sử dụng trong môi trường sản xuất.
Ngoài ra, đối với các URL trên trang web, bạn có thể làm cho chúng liên quan đến miền. Các trình duyệt sẽ tự động điền vào phần còn lại vì họ biết họ đang xem trang nào. Vì vậy, thay vì:
Contact
Bạn nên sử dụng:
Contact
Đối với SEO tốt, bạn sẽ muốn đảm bảo rằng các URL cho blog không tồn tại trong miền khác, nếu không nó có thể được đánh dấu là một trang web trùng lặp. Với điều đó đã được nói, bạn cũng có thể muốn thêm một dòng vào tệp
echo $_SERVER['DOCUMENT_ROOT']; //should be '/main_web_folder/blog/';
0 của mình chỉ cho SITE1:ONLY site1:User-agent: *
Disallow: /blog/
Các khả năng khác:
Tra cứu địa chỉ IP của bạn và bao gồm đoạn mã này:
function is_dev[]{
//use the external IP from Google.
//If you're hosting locally it's 127.0.01 unless you've changed it.
$ip_address='xxx.xxx.xxx.xxx';
if [$_SERVER['REMOTE_ADDR']==$ip_address]{
return true;
} else {
return false;
}
}
if[is_dev[]]{
echo $_SERVER['DOCUMENT_ROOT'];
}
Hãy nhớ nếu ISP của bạn thay đổi IP của bạn, vì trong bạn có IP động DCHP, bạn sẽ cần thay đổi IP trong tệp đó để xem kết quả. Tôi sẽ đặt tập tin đó trong một bao gồm, sau đó yêu cầu nó trên các trang để gỡ lỗi.
Nếu bạn ổn với các phương thức hiện đại như sử dụng nhật ký bảng điều khiển trình duyệt, bạn có thể thực hiện việc này và xem nó trong giao diện gỡ lỗi của trình duyệt:
if[is_dev[]]{
echo "".PHP_EOL;
echo "console.log['".$_SERVER['DOCUMENT_ROOT']."'];".PHP_EOL;
echo "".PHP_EOL;
}
Cập nhật lần cuối: Ngày 5 tháng 5 năm 2022
Trong - PHP
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn giải pháp của PHP bao gồm tệp từ một thư mục khác, đây là hướng dẫn về cách bao gồm các tệp từ các thư mục khác sử dụng PHP.
Bạn có cần tải một tệp khác trong PHP được đặt trong một thư mục riêng không? Đó không phải là một khó khăn; Giải pháp rất đơn giản.
Đường dẫn tuyệt đối là cách tiếp cận đơn giản nhất để bao gồm một tệp từ một thư mục khác [chỉ định đường dẫn đầy đủ đến tệp].
Chúng tôi sẽ đi qua sâu hơn làm thế nào để đưa các tệp PHP từ một thư mục khác trong hướng dẫn này đọc sách này!
Hướng dẫn từng bước trên PHP bao gồm tệp từ một thư mục khác:-
Đường dẫn tệp tương đối vs tuyệt đối
D: \ http \ 1a-demo.php
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';
0D: \ http \ 1b-demo.php
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';
1- Đường dẫn tương đối - Một đường dẫn dựa trên thư mục làm việc hiện tại như là một "tốc ký".
- Đường dẫn tuyệt đối - Đường dẫn hoàn chỉnh của tệp.
- Vâng, con đường tuyệt đối nên được hiển nhiên. Con đường tương đối, mặt khác, là con đường mà hầu hết người mới bắt đầu đều sai.
Thư mục làm việc hiện tại là gì?
D: \ http \ 2-demo.php
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';
2- Chính xác thì "thư mục làm việc hiện tại" có nghĩa là gì? Với getcwd [], chúng tôi có thể nhanh chóng xác minh rằng tập lệnh được đặt trong đúng thư mục. Hãy xem xét các kịch bản sau:
- 2-demo.php nằm trong thư mục D: HTTP.
- Thư mục làm việc hiện tại được gán cho D: HTTP khi bạn truy cập 2-demo.php.
- Thư mục làm việc hiện tại xác định các đường dẫn tương đối.
- Bao gồm "1b-demo.php" chuyển hướng sang d: http1b-demo.php.
- Bao gồm "lib/script.php" chuyển hướng sang d: httplibscript.php.
Thư mục làm việc hiện tại
D: \ http \ 3a-outside.php
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';
3- Bạn đã chuẩn bị cho chủ đề bối rối của thư mục làm việc hiện tại?
- Lưu ý các vị trí của các tập lệnh trong phạm vi: http3a-outside.php và d: httplib3b-inside.php.
- Thư mục làm việc hiện tại được gán cho D: HTTP khi chúng tôi truy cập trực tiếp 3A-outside.php.
- Tuy nhiên, khi chúng tôi truy cập trực tiếp vào lib/3b-inside.php, thư mục làm việc hiện tại được đặt thành D: httplib.
- Có, thư mục làm việc hiện tại được đặt thành thư mục của tập lệnh đầu tiên được gọi là.
- Người mới bắt đầu thường mắc lỗi này vì họ không hiểu thư mục làm việc hiện tại hoạt động như thế nào.
Thư mục của tập lệnh hiện tại
D: \ http \ 4a-outside.php
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';
4D: \ http \ lib \ 4b-inside.php
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';
5- Thay vào đó, hãy sử dụng hằng số __dir__ ma thuật nếu bạn muốn lấy thư mục của tập lệnh hiện tại.
Con đường tuyệt đối bán tự động
5a-path.php
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';
6- Vì vậy, kỹ thuật tốt nhất để đối phó với đường dẫn tệp là gì? Những gì thường làm là:
- Giữ các tệp cấu hình và thư viện trong một thư mục con lib được bảo mật và cấu trúc đúng dự án.
- Tạo một tệp có tên lib/config.php chứa cấu hình cơ sở dữ liệu, các khóa bí mật và đường dẫn tệp.
- Xác định ["đường dẫn lib", __dir__] trong lib/config.php sẽ luôn giải quyết cho thư mục lib hiện tại.
- Sau đó, xác định ["cơ sở đường dẫn", dir [dir__]] sẽ giải quyết cho thư mục cơ sở của dự án, là cha mẹ của thư mục LIB.
- Thats tất cả để có nó; Đường dẫn lib là bắt buộc. Bao gồm root đường dẫn trong "Thư viện.php."
- "File.ext" hiện đã trở thành một đường dẫn tệp tuyệt đối không bao giờ có thể không chính xác.
Sự kết luận :-
PHP cho phép bạn bao gồm nội dung từ một tệp khác trong tập lệnh PHP đang chạy. Về cơ bản, nó giống như hợp nhất hai tệp trong thời gian thực.
Điều này cho phép bạn lưu trữ các chức năng và nội dung chung trong một tệp và truy cập nó khi cần thiết.
Tôi hy vọng hướng dẫn này trên PHP bao gồm tệp từ một thư mục khác giúp bạn.