Tôi thường thấy rằng tôi có tệp trong các dự án cần được truy cập từ hệ thống tệp cũng như trình duyệt của người dùng. Một ví dụ là tải ảnh lên. Tôi cần quyền truy cập vào các tệp trên hệ thống tệp để tôi có thể sử dụng GD để thay đổi hình ảnh hoặc di chuyển chúng xung quanh. Nhưng người dùng của tôi cũng cần có thể truy cập các tệp từ một URL như example.com/uploads/myphoto.jpg
.PHP - Chuyển đổi đường dẫn hệ thống tệp thành URL
Vì đường dẫn tải lên thường tương ứng với URL mà tôi đã tạo nên một hàm có vẻ hoạt động phần lớn thời gian. Thực hiện các đường dẫn ví dụ:
File System /var/www/example.com/uploads/myphoto.jpg
Nếu tôi có một bộ biến để một cái gì đó như /var/www/example.com/
sau đó tôi có thể trừ nó khỏi đường dẫn hệ thống tập tin và sau đó sử dụng nó làm URL cho hình ảnh.
/**
* Remove a given file system path from the file/path string.
* If the file/path does not contain the given path - return FALSE.
* @param string $file
* @param string $path
* @return mixed
*/
function remove_path($file, $path = UPLOAD_PATH) {
if(strpos($file, $path) !== FALSE) {
return substr($file, strlen($path));
}
}
$file = /var/www/example.com/uploads/myphoto.jpg;
print remove_path($file, /var/www/site.com/);
//prints "uploads/myphoto.jpg"
Có ai biết cách nào tốt hơn để xử lý việc này không?
Cảm ơn. Mặc dù điều này có thể dễ bị lỗi, nhưng đó chính xác là những gì tôi cần trong trường hợp của tôi. –