Bạn phải sử dụng đường dẫn tuyệt đối để xem liệu tệp có tồn tại hay không.
$abs_path = '/var/www/example.com/public_html/images/';
$file_url = 'http://www.example.com/images/' . $filename;
if (file_exists($abs_path . $filename)) {
echo "The file exists. URL:" . $file_url;
} else {
echo "The file does not exist";
}
Nếu bạn đang viết cho CMS hoặc PHP framework thì theo như tôi biết, tất cả chúng đều đã định nghĩa hằng số cho đường dẫn gốc của tài liệu.
ví dụ: WordPress sử dụng ABSPATH có thể được sử dụng trên toàn cầu để làm việc với các tệp trên máy chủ bằng cách sử dụng mã của bạn cũng như url trang web.
Ví dụ về wordpress:
$image_path = ABSPATH . '/images/' . $filename;
$file_url = get_site_url() . '/images/' . $filename;
if (file_exists($image_path)) {
echo "The file exists. URL:" . $file_url;
} else {
echo "The file does not exist";
}
Tôi đang đi thêm một dặm ở đây :). Bởi vì mã này sẽ không cần bảo trì nhiều và khá chắc chắn, tôi sẽ viết nó bằng câu lệnh if viết tắt:
$image_path = ABSPATH . '/images/' . $filename;
$file_url = get_site_url() . '/images/' . $filename;
echo (file_exists($image_path))?'The file exists. URL:' . $file_url:'The file does not exist';
Câu lệnh IF viết tắt được giải thích:
$stringVariable = ($trueOrFalseComaprison > 0)?'String if true':'String if false';