Giới thiệuTrang web của bạn tồn tại trong hai cõi cùng một lúc: thực tế và ảo. Show
Đối với khách truy cập trang web, nó hoàn toàn là một máy chủ ảo, theo nhiều cách khác với một máy chủ thực sự. Không có tập tin để bắt đầu. Tôi biết, lúc đầu thật khó tin, nhưng đó là một sự thật. Trong địa chỉ như Đối với nhà phát triển trang web, mặt khác, trang web của họ là một chương trình nhất định chạy trên một máy chủ cụ thể, trên máy tính rất thực với ổ cứng, tệp và thư mục. Và tập lệnh PHP của bạn, trong khi đọc các tệp dữ liệu hoặc bao gồm các tập lệnh khác, đang làm việc với các tệp thực sự tồn tại trên phương tiện vật lý. Vì vậy, thuyết nhị nguyên này là gốc rễ của nhiều vấn đề. Người dùng PHP đã nhầm lẫn các vấn đề này lúc đầu, làm những việc như không thể xác định được một tệp hiện có, gây nhầm lẫn các siêu liên kết với các tệp, bao gồm các tệp cục bộ thông qua HTTP và như vậy. Tuy nhiên, để sắp xếp những thứ này tất cả những gì bạn cần là chỉ nắm bắt hai khái niệm đơn giản:
Sự khác biệt giữa các đường dẫn tuyệt đối và tương đốiCon đường tuyệt đối
Đường dẫn máy chủ web Kịch bản console. Điểm nhập cảnh duy nhất Con đường tuyệt đốiĐường dẫn tương đối Tài liệu gốc
Đường dẫn máy chủ web Kịch bản console. Điểm nhập cảnh duy nhất Các lệnh và hằng số PHP hữu ích Nhận xét (12)
Đường dẫn tương đốiTài liệu gốc Đường dẫn máy chủ web Kịch bản console. Điểm nhập cảnh duy nhất
Đối với nhà phát triển trang web, mặt khác, trang web của họ là một chương trình nhất định chạy trên một máy chủ cụ thể, trên máy tính rất thực với ổ cứng, tệp và thư mục. Và tập lệnh PHP của bạn, trong khi đọc các tệp dữ liệu hoặc bao gồm các tập lệnh khác, đang làm việc với các tệp thực sự tồn tại trên phương tiện vật lý.always builds it up to the absolute one. Both web-server and file system are doing that but different ways. So, let's learn them. Tài liệu gốcĐây là phần thú vị nhất. Có một điểm mà thế giới thực gặp thế giới ảo. Hãy tưởng tượng có một tập tin như 7. Trong khi trên máy chủ web địa chỉ của nó là 8Và ở đây, điểm có thể được thấy rõ: có một phần, phổ biến cho cả hai địa chỉ: 9, đó là nguồn gốc của sự nhầm lẫn.Đối với trình duyệt, đường dẫn này hoàn toàn tuyệt đối, bắt đầu từ gốc của máy chủ web. Trong khi đó đối với tập lệnh, nó chỉ là một phần của đường dẫn đầy đủ - đường dẫn hệ thống tập tin. Và nếu bạn cố gắng sử dụng nó trong PHP, nó sẽ dẫn đến thất bại: không có danh mục 0 trên ổ cứng!Whereas for the script it's only a part of the full path - the filesystem path. And if you try to use it in PHP it will result in a failure: there is no 0 catalog on the HDD!Để có được đường dẫn làm việc đến tệp này, chúng tôi phải thêm phần còn thiếu. Trong ví dụ của chúng tôi, đó là 1, được gọi là 2 và là tùy chọn cấu hình quan trọng nhất cho các tương tác hệ thống tệp. Trong PHP, bạn có thể truy cập nó thông qua 3.Vì vậy, bây giờ bạn có thể nói rằng để làm cho bất kỳ đường dẫn hệ thống tệp nào hoạt động, nó phải tuyệt đối và được xây dựng bằng cách sử dụng 2. Vì vậy, một mã PHP chính xác để truy cập 9 từ PHP sẽ làany file system path work, it should be absolute and built using 2. So a correct PHP code to access 9 from PHP would be
Ở đây chúng tôi đang sử dụng một phần máy chủ web của đường dẫn, chi tiêu nó với root tài liệu. Voila! Đường dẫn máy chủ webđơn giản hơn nhiều. Giống như đã nói trước đây, đối với trình duyệt, không có tệp trên máy chủ. Người dùng trang web không bao giờ có quyền truy cập vào hệ thống tệp của máy chủ. Đối với trình duyệt, chỉ có một root trang web. Đó là không đổi và luôn luôn đơn giản là một dấu gạch chéo.site root only. Which is constant and always simply a slash. Do đó, để tạo một liên kết HTML tuyệt đối, chỉ cần xây dựng nó từ root trang web - và bạn sẽ không bao giờ thấy lỗi 404 cho tệp hiện có nữa! Hãy tưởng tượng trang web của bạn có hai phần,
và trong 6 bạn muốn liên kết đến 7. Nếu bạn làm như vậy, 8, thì Trình duyệt sẽ không tìm thấy nó! Hãy nhớ rằng, nó luôn cố gắng xây dựng liên kết đến toàn bộ, sử dụng vị trí hiện tại, đó là 9 và do đó đường dẫn kết quả là 0 là sai. Để làm cho nó đúng, chúng ta phải làm cho liên kết này tuyệt đối, bắt đầu từ root trang web: 1Vì vậy, nó đi cho tất cả các liên kết nội bộ trên trang web - các tệp hình ảnh, JS và CSS, siêu liên kết hoặc bất kỳ tài nguyên nào khác có thể được nhấp vào hoặc tải trên trang. Đối với các tài nguyên cục bộ, tốt hơn là chỉ làm cho nó đường dẫn, không có giao thức và tên miền - như 1. Trong khi đối với các tài nguyên bên ngoài, các thuộc tính này là bắt buộc, và do đó, nó phải là một URL đủ điều kiện như 3.Kịch bản console. Điểm nhập cảnh duy nhấtThật đáng tiếc, nhưng đối với các tập lệnh giao diện điều khiển của chúng tôi, biến 3 hữu ích của chúng tôi là không khả dụng. Vì vậy, chúng tôi buộc phải sử dụng các đường dẫn liên quan đến tập lệnh gọi, xuất phát từ vị trí của tập lệnh hiện tại.Ví dụ: nếu ứng dụng của bạn được lưu trữ trong 5 và có hai thư mục con, 6 và 7 và bạn muốn truy cập vào cái sau từ trước, bạn có thể viết mã sau:
Mặc dù về mặt kỹ thuật tuyệt đối (bắt đầu từ một dấu gạch chéo), đường dẫn này về cơ bản là liên quan đến tập lệnh gọi, bởi vì nếu tập lệnh gọi sẽ được chuyển vào một thư mục khác, nó sẽ không tìm thấy tệp cấu hình nữa. Đây là lý do tại sao nên sử dụng một điểm nhập duy nhất cho ứng dụng của bạn. Hoặc - như trong trường hợp của chúng tôi - hai điểm nhập, một điểm cho các yêu cầu web và một cho các lệnh giao diện điều khiển. Vì vậy, đối với ứng dụng hư cấu của chúng tôi, chúng tôi sẽ có ba tệp - một điểm nhập cho mặt trước web, một điểm nhập cho các ứng dụng bảng điều khiển và tệp bootstrap:
Sau đó, chúng ta có thể viết mã sau (trong số những thứ khác) trong 8:
Để xác định hằng số 9 chứa đường dẫn đến thư mục gốc của ứng dụng của chúng tôi (nằm ngay trên 0 DIR).Và sau đó trong cả 1 và 2
Để làm cho tất cả các công cụ bootstrap có sẵn, bao gồm cả hằng số root_dir. Từ bây giờ chúng tôi có thể sử dụng nó để xây dựng các đường dẫn tuyệt đối bắt đầu từ thư mục gốc (miễn là các tập lệnh của chúng tôi được gọi qua điểm nhập cảnh hoặc bảng điều khiển một):
Việc triển khai ví dụ có thể được tìm thấy trong bảng điều khiển nghệ nhân hoặc symfony của Laravel. Tất nhiên, cả hai điểm nhập nên thực hiện một loại người giải quyết để gọi tất cả các trang và bảng điều khiển khác nhưng điều đó hơi nằm ngoài phạm vi của bài viết này. Các lệnh và hằng số PHP hữu íchCó những lệnh và hằng số của Hepful trong PHP để giảm bớt nội suy đường dẫn. Một số trong số họ là:
Những bài viết liên quan:
Các tập tin và thư mục trong PHP là gì?Các tệp trong thư mục có thể được đọc bằng hàm php scandir (). Scandir () có hai đối số. Đối số đầu tiên là đường dẫn thư mục được quét. Đối số tùy chọn thứ hai chỉ định cách sắp xếp danh sách thư mục.. scandir() takes two arguments. The first argument is the path the directory to be scanned. The second optional argument specifies how the directory listing is to be sorted.
Điều gì có nghĩa là __ dir __ trong PHP?__Dir__ có thể được sử dụng để có được thư mục làm việc 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.used to obtain the current code working directory. It has been introduced in PHP beginning from version 5.3. It is similar to using dirname(__FILE__). Usually, it is used to include other files that is present in an included file.
PHP có phải là một thư mục hoặc tệp?Hàm is_dir () trong PHP được sử dụng để kiểm tra xem tệp được chỉ định có phải là thư mục hay không.Tên của tệp được gửi dưới dạng tham số cho hàm is_dir () và nó trả về true nếu tệp là một thư mục khác, nó trả về sai.Các tham số được sử dụng: Hàm is_dir () trong PHP chỉ chấp nhận một tham số.. The name of the file is sent as a parameter to the is_dir() function and it returns True if the file is a directory else it returns False. Parameters Used: The is_dir() function in PHP accepts only one parameter.
Làm cách nào để tham chiếu một tệp trong PHP?PHP, bạn cũng có thể:.. Sử dụng bao gồm '../../meta.PHP ';trong /tiêu đề.PHP nếu bạn đang gọi tập lệnh của bạn từ /trang /trang1.Tệp PHP,. Sử dụng bao gồm dirname (__ File__).'/Meta.PHP ';trong /tiêu đề.PHP,. Sử dụng bao gồm $ _Server ['Document_root'].'/Meta.PHP ';trong tiêu đề.PHP .. |