Định nghĩa.
Hàm symlink()
sẽ tạo liên kết tượng trưng tới đối tượng hiện tại với đối tượng chỉ định được truyền vào.
Cú pháp.
Cú pháp:
symlink ( string$target
, string$link
) : bool
Trong đó.
$target
là mục tiêu của liên kết.$link
tên của liên kết.
Giá trị trả về.
- Trả về TRUE khi thành công hoặc FALSE nếu thất bại.
Ghi chú.
- Lưu ý: Người dùng Windows cần lưu ý rằng chức năng này sẽ chỉ hoạt động nếu hệ thống bạn chạy PHP là Windows Vista / Windows Server 2008 hoặc mới hơn. Các phiên bản Windows trước đó không hỗ trợ các liên kết tượng trưng.
Changelog.
- 5.3.0 Chức năng này hiện khả dụng trên nền tảng Windows (Vista, Server 2008 trở lên).
Ví dụ.
Ví dụ # 1.
code.
<?php $target = 'uploads.php'; $link = 'uploads'; symlink($target, $link); echo readlink($link); ?>
Hàm liên quan.
- link() – Tạo một liên kết cứng
- readlink() – Trả về đích của một liên kết tượng trưng
- linkinfo() – Nhận thông tin về một liên kết
Thông tin thêm.
- Các liên kết tượng trưng trên windows được tạo bởi Symlink () chỉ chấp nhận các đường dẫn tuyệt đối chứ không chấp nhận các đường dẫn tương đối. Các đường dẫn tương đối trên windows không được hỗ trợ cho các liên kết tượng trưng
- Đây là một cách đơn giản để kiểm soát ai tải xuống tệp của bạn … Bạn sẽ phải đặt: $ filename, $ downloaddir, $ safedir và $ downloadURL. Về cơ bản $ filename là tên của một tệp, $ downloaddir là bất kỳ dir nào trên máy chủ của bạn, $ safedir là một dir không thể truy cập bởi trình duyệt có chứa tệp có tên $ filename và $ downloadURL là URL tương đương với $ downloaddir của bạn. Cách hoạt động của điều này là khi người dùng muốn tải xuống một tệp, một dir có tên ngẫu nhiên được tạo trong $ downloaddir và một liên kết tượng trưng được tạo đến tệp được yêu cầu. Sau đó, trình duyệt được chuyển hướng đến liên kết mới và quá trình tải xuống bắt đầu. Mã cũng xóa mọi liên kết tượng trưng trong quá khứ được tạo bởi bất kỳ người dùng nào trước đây trước khi tạo một liên kết cho chính nó. Điều này có hiệu lực chỉ để lại một liên kết tượng trưng tại một thời điểm và ngăn người dùng trước đây tải xuống tệp một lần nữa mà không cần thông qua tập lệnh này. Dường như không có vấn đề gì nếu một liên kết tượng trưng bị xóa trong khi một người khác đang tải xuống từ liên kết đó. Điều này không quá tuyệt nếu không có nhiều người tải xuống tệp vì liên kết tượng trưng sẽ không bị xóa cho đến khi người khác tải xuống cùng tệp.
<?php $letters = 'abcdefghijklmnopqrstuvwxyz'; srand((double) microtime() * 1000000); $string = ''; for ($i = 1; $i <= rand(4,12); $i++) { $q = rand(1,24); $string = $string . $letters[$q]; } $handle = opendir($downloaddir); while ($dir = readdir($handle)) { if (is_dir($downloaddir . $dir)){ if ($dir != "." && $dir != ".."){ @unlink($downloaddir . $dir . "/" . $filename); @rmdir($downloaddir . $dir); } } } closedir($handle); mkdir($downloaddir . $string, 0777); symlink($safedir . $filename, $downloaddir . $string . "/" . $filename); Header("Location: " . $downloadURL . $string . "/" . $filename); ?>
Các bạn có thể xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm symlink() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com