Có thể Lấy đường dẫn file trong php hay không? Có những loại đường dẫn khác nhau nào? Nếu bạn đang gặp khó khăn hãy theo dõi ngay bài viết của xaydungweb.vn để cùng giải đáp những khó khăn ngay nhé.
Đường dẫn tương đối là gì?
Đường dẫn tương đối là đường dẫn có điểm bắt nguồn từ thư mục hiện tại đang đứng. Chẳng hạn như bạn đang ở folder public
và bạn mong muốn trỏ tới một tệp tên là index.php
nằm trong thư mục public thì lúc này đường dẫn chúng ta sẽ là /index.php
.
Để di chuyển lùi một folder trong đường dẫn tương đối thì ta dùng ký tự ../
.
Ví dụ: Cho cấu trúc folder như sau
Giả sử ta đang ở tệp cate.php nằm trong thư mục course. Bây giờ muốn truy tìm qua tệp post.php
nằm trong thư mục blog
thì lúc này đường dẫn tương đối sẽ là:
1 | ../blog/post.php |
Còn truy xuất file post.php
nằm trong thư mục course
sẽ cùng cấp có thể đường dẫn lúc này là:
1 | /post.php |
Khi các nàng dùng PHP để đọc hay viết tệp thì phải dùng đường dẫn tương đối nhé.
Xem thêm Nên sử dụng phần mềm thiết kế web đơn giản nào?
Đường dẫn tuyệt đối là gì?
Đường dẫn tuyệt đối là đường dẫn có đầu đủ cấu trúc của URL của một site.
Chẳng hạn như: Các đường dẫn tuyệt đối sau
- https://freetuts.net
- https://freetuts.net/hoc-php
Cũng giống như với đường dẫn tương đối bạn muốn trở về một folder thì hãy sử dụng ký tự ../
.
Chẳng hạn như: https://freetuts.net/public/../demo
sẽ tương tự với https://freetuts.net/demo
Thường thường khi chúng ta thu thập thông tin từ một website khác thì sẽ dùng đường dẫn tuyệt đối bởi vì code PHP không hề có quyền truy xuất trực tiếp một tệp ở Server khác.
Xem thêm Danh sách website vệ tinh – Guest post hỗ trợ SEO của ATP Software
Các thao thác với thư mục trong PHP
Cách tạo một thư mục mới bằng PHP – Lấy đường dẫn file trong php
Để tạo một thư mục mới bạn sử dụng hàm mkdir() của PHP với đường dẫn và tên của thư mục sẽ được tạo, như trong ví dụ dưới đây:
kiểm duyệt thư mục đã tồn tại hay chưa if(!file_exists($dir)) // Tạo một thư mục mới if(mkdir($dir)) echo "Tạo thư mục thành công."; else echo "ERROR: Không thể tạo thư mục."; else echo "ERROR: Thư mục đã tồn tại."; ?>
Lưu ý: Để làm cho hàm mkdir() công việc, các thư mục cha trong tham số đường dẫn thư mục phải tồn tại, ví dụ, nếu bạn chỉ định đường dẫn thư mục là testdir/subir thì thư mục testdir phải hiện hữu nếu không PHP sẽ báo lỗi.
Bí quyết sao chép tệp từ vị trí này sang vị trí khác trong PHP
Bạn có khả năng sao chép một file từ vị trí này sang vị trí khác bằng cách gọi hàm copy() trong PHP với các đường dẫn nguồn và đích của file làm đối số.
Nếu file đích đã xuất hiện, nó sẽ bị ghi đè. đây chính là một chẳng hạn như tạo ra một bản sao của tệp ‘example.txt’ trong thư mục sao lưu.
tệp nguồn $file = "example.txt"; // Đường dẫn file đích $newfile = "backup/example.txt"; // kiểm tra tệp cần copy có hiện hữu hay không if(file_exists($file)) // Tạo file copy if(copy($file, $newfile)) echo "Copy file thành công."; else echo "ERROR: File không thể copy."; else echo "ERROR: File không tồn tại."; ?>
Lưu ý: Để làm cho chẳng hạn như này hoạt động, thư mục đích được sao lưu và tệp nguồn (tức là thư mục backup) phải tồn tại nếu như không PHP sẽ báo lỗi.
Xem thêm Tổng hợp các bước để xây dựng 1 trang web mới nhất 2020
Liệt kê toàn bộ các file trong một thư mục trong PHP
Bạn có khả năng sử dụng hàm scandir() của PHP để liệt kê các tệp và thư mục bên trong đường dẫn đã chỉ định.
Chúng ta sẽ thử tạo một hàm tùy chỉnh để liệt kê đệ quy toàn bộ các tệp trong một thư mục bằng PHP.
Kịch bản này sẽ cực kì có ích nếu như bạn đang thực hiện công việc với cấu trúc thư mục được lồng sâu.
tệp trong một thư mục function outputFiles($path) // kiểm duyệt thư mục có hiện hữu hay không if(file_exists($path) && is_dir($path)) // Quét toàn bộ các file trong thư mục $result = scandir($path); // Lọc ra các thư mục hiện tại (.) và các thư mục cha (..) $files = array_diff($result, array('.', '..')); if(count($files) > 0) // Lặp qua mảng đã trả lại foreach($files as $file) if(is_file("$path/$file")) // Hiển thị tên File echo $file . "≪br>"; else if(is_dir("$path/$file")) // Gọi đệ quy hàm nếu như tìm thấy thư mục outputFiles("$path/$file"); else echo "ERROR: không có tệp nào trong thư mục."; else echo "ERROR: Thư mục không hiện hữu."; // Gọi hàm outputFiles("mydir"); ?>
Trên đây là cách Lấy đường dẫn file trong php đúng đắn nhất. Hy vọng những thông tin trên sẽ hữu ích với tất cả mọi người. Cảm ơn mọi người đã theo dõi bài viết.
Hồng Quyên – Tổng hợp
Tham khảo ( laptrinhvienphp.com, freetuts.net,… )