Làm cách nào để đặt đường dẫn trong PHP?
Nếu bạn đang sử dụng XAMPP trên máy Windows 10 của mình và muốn thêm lệnh php để nó có thể sử dụng được trong dấu nhắc lệnh, bạn đã đến đúng chỗ Show
Bắt đầu bằng cách nhập Biến môi trường trong Tìm kiếm của bạn và nhấp vào kết quả Chỉnh sửa biến môi trường hệ thống Đối với khách truy cập trang web, đó hoàn toàn là một máy chủ ảo, theo nhiều cách khác với máy chủ thực. Không có tập tin cho người bắt đầu. Tôi biết, thoạt nghe thật khó tin, nhưng đó là sự thật. Trong địa chỉ như Mặt khác, đối với nhà phát triển trang web, 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ột 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 hoạt động với các tệp thực như vậy 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 đề Ban đầu, người dùng PHP rất nhầm lẫn những vấn đề này, làm những việc như không thể định vị một tệp hiện có, nhầm lẫn giữa các siêu liên kết với các tệp, bao gồm các tệp cục bộ qua HTTP, v.v. Tuy nhiên, để sắp xếp những thứ này ra, tất cả những gì bạn cần là nắm được hai khái niệm đơn giản.
Sự khác biệt giữa đường dẫn tuyệt đối và tương đốiNó khá đơn giản
Nó hoàn toàn giống với các hướng dẫn trong cuộc sống thực. Với địa chỉ tuyệt đối, địa chỉ bưu chính, chẳng hạn như "7119 W Sunset Blvd West Hollywood, CA 90046", bạn có thể tìm thấy vị trí từ bất cứ đâu. Tuy nhiên, với các chỉ dẫn tương đối, chẳng hạn như "giữ ba khối theo cách này rồi rẽ sang phải" sẽ chỉ hoạt động từ vị trí hiện tại, nếu không sẽ khiến bạn lạc lối Vì vậy, nó đi theo những con đường trong thế giới máy tính. được cung cấp địa chỉ tuyệt đối, bạn luôn có thể đến nơi, bất kể bạn bắt đầu từ đâu. Trong khi đường dẫn tương đối phức tạp và nên được sử dụng một cách thận trọng, chỉ khi bạn biết chắc chắn mình đang ở đâu vào lúc này đường dẫn tuyệt đốiVì vậy, một lần nữa. một đường dẫn tuyệt đối là một đường dẫn bắt đầu từ gốc hệ thống Một số ví dụ về đường dẫn tuyệt đối
Lưu ý rằng trong các hệ thống giống Unix (và máy chủ web), thư mục gốc được định nghĩa là dấu gạch chéo - 0 trong bảng điều khiển unix của bạn và bạn sẽ đến thư mục gốc. Điều này cũng đúng với tất cả các máy chủ web. Vì vậy, bạn có thể biết rằng trong địa chỉ 1, dấu gạch chéo ở cuối không phải để trang trí mà là một địa chỉ thông thường - địa chỉ của trang chủTrên Windows, hệ thống tệp không có gốc chung cho toàn bộ hệ thống mà được phân chia giữa các đĩa, do đó, đường dẫn tuyệt đối bắt đầu từ ký tự ổ đĩa. Trong khi mỗi đĩa có gốc riêng, đó là dấu gạch chéo ngược - 2. Vì vậy, bạn có thể gõ 3 và truy cập thư mục gốc của đĩa hiện tạiVì vậy, bạn có thể nói rằng các cửa sổ khá khó hiểu, nhưng để đơn giản, chúng tôi sẽ giả vờ rằng chúng tôi chỉ có một đĩa và trong ranh giới của nó, các quy tắc gần giống như trong Unix Vì vậy, bây giờ bạn có thể nói một đường dẫn tuyệt đối từ một đường dẫn tương đối - nó bắt đầu từ gốc, đó là
đường dẫn tương đốiNếu bạn không cung cấp root, điều đó có nghĩa là đường dẫn của bạn là tương đối Ví dụ đơn giản nhất về đường dẫn tương đối chỉ là tên tệp, như 8. Vì vậy, người ta nên cẩn thận với các đường dẫn tương đối. Nếu thư mục hiện tại của bạn là 9 thì 8 sẽ là một, nhưng nếu bạn chuyển nó sang 1 thì nó sẽ là một thư mục khácCác ví dụ đường dẫn tương đối khác
Điều bạn nên biết là hệ thống, khi gặp một đường dẫn tương đối, luôn xây dựng nó thành một đường dẫn tuyệt đối. Cả máy chủ web và hệ thống tệp đều đang làm điều đó nhưng theo những cách khác nhau. Vì vậy, hãy tìm hiểu chúng gốc tài liệuĐâ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 như 7. Trong khi trên máy chủ web, địa chỉ của nó là 8Và ở đây điểm có thể được nhìn thấy rõ ràng. có một phần, chung 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ừ thư mục gốc của máy chủ web 0 trên ổ cứngĐể có được đường dẫn làm việc đến tệp này, chúng ta 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ó qua 3Vì 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 là đường dẫn tuyệt đối và được xây dựng bằng cách sử dụng 2. Vì vậy, mã PHP chính xác để truy cập 9 từ PHP sẽ là
ở đây chúng tôi đang sử dụng một phần máy chủ web của đường dẫn, thêm vào trước nó bằng tài liệu gốc. thì đấy Đườ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 nào 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 trang gốc. Đó là hằng số và luôn luôn chỉ đơn giản là một dấu gạch chéo Do đó, để tạo một liên kết HTML tuyệt đối, chỉ cần tạo liên kết đó từ thư mục gốc của trang web - và bạn sẽ không bao giờ gặp lại lỗi 404 đối với tệp hiện có 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 tới 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 liên kết đầy đủ, sử dụng vị trí hiện tại, là 9 và do đó, đường dẫn kết quả là 0, điều này là sai. Để làm cho đúng, chúng ta phải làm cho liên kết này trở nên tuyệt đối, bắt đầu từ thư mục gốc của trang web. 1Vì vậy, nó áp dụng cho tất cả các liên kết nội bộ trên trang web - hình ảnh, tệp 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 tài nguyên cục bộ, tốt hơn là chỉ tạo đườ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ư 3Thư mục làm việc hiện tạiThư mục làm việc hiện tại (cũng là thư mục hiện tại, thư mục làm việc, CWD) là thành phần chính trong các đường dẫn tương đối. Đó là thư mục, từ đó các đường dẫn tương đối được xây dựng Trên máy chủ web, đó là một thư mục chứa tệp php được yêu cầu. Vì vậy, nếu bạn đang yêu cầu một URL như 4, thì thư mục làm việc hiện tại sẽ là
do đó, tất cả các đường dẫn tương đối trong HTML trên trang đó sẽ được trình duyệt hiểu là bắt đầu từ 5
Và tương tự như vậy, đối với PHP, tất cả các đường dẫn tương đối đều bắt đầu từ 6Trong bảng điều khiển, thư mục làm việc hiện tại của PHP bằng với thư mục hiện tại của trình bao. Có nghĩa là khi đang ở 2 và gọi lệnh 3, TKT sẽ vẫn là 2Bạn có thể lấy thư mục làm việc hiện tại bằng hàm 5 hoặc thay đổi nó bằng hàm 6Tập lệnh bảng điều khiển. Điểm vào duy nhấtThật đáng tiếc, nhưng đối với tập lệnh bảng điều khiển, biến 3 hữu ích của chúng tôi 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ạiVí dụ: nếu ứng dụng của bạn được lưu trữ trong 8 và có hai thư mục con, 9 và 0, và bạn muốn truy cập thư mục sau từ thư mục trước, bạn có thể viết đoạn mã sau
Mặc dù về mặt kỹ thuật là tuyệt đối (bắt đầu 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 thư mục khác, thì 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 vào 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 vào, một cho yêu cầu web và một cho lệnh đ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 vào cho mặt trước web, một điểm vào cho các ứng dụng bảng điều khiển và một tệp bootstrap
Sau đó, chúng ta có thể viết đoạn mã sau (trong số những thứ khác) vào 1
để xác định hằng số 2 chứa đường dẫn đến thư mục gốc của ứng dụng của chúng tôi (ngay phía trên thư mục 3)Và sau đó trong cả 4 và 5
để cung cấp tất cả nội dung bootstrap, bao gồm hằng số ROOT_DIR. Từ giờ trở đi, chúng ta 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 ta được gọi thông qua điểm vào web hoặc bảng điều khiển)
Có thể tìm thấy các triển khai ví dụ trong Laravel's Artisan hoặc Symfony Console Tất nhiên, cả hai điểm vào nên triển khai một loại trình phân giải để gọi tất cả các trang và tập lệnh 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 Làm cách nào để xác định đường dẫn tệp trong PHP?php. xác định ('ROOT_DIR', realpath (__DIR__. '/. ')); . . /var/www/ứng dụng/html/chỉ mục. php /var/www/app/bin/console. php /var/www/app/config/bootstrap. php Làm cách nào để viết đường dẫn 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 để thêm đường dẫn đến biến trong PHP?Tạo biến đường dẫn mới . Nhấn Ctrl+Alt+S để mở cài đặt IDE và chọn Giao diện & Hành vi. Biến đường dẫn Nhấp chuột. , nhập tên và giá trị của biến, rồi bấm OK để áp dụng các thay đổi |