Hôm nay tôi đã fix 1 lỗi về đường dẫn file ảnh, công việc của tôi là kiểm tra file ảnh đó có tồn tại hay không và nếu không tồn tại thì phải thay bằng một ảnh mặc định nào đó. Nếu là bạn, bạn sẽ dùng hàm gì ? Tôi nghĩ sẽ có nhiều người nghĩ ngay đến hàm file_exists() đã khá quen thuộc. Nhưng khi tôi thử áp dụng thì nó lại cho kết quả không đúng mặc dù file ảnh mà tôi kiểm tra là có thực. Sau một hồi tìm kiếm, tôi đã có câu trả lời, đó là trong trường hợp này hàm file_exists() sẽ kiểm tra thư mục của file ảnh, do đó nó sẽ luôn trả về false. Đồng thời tôi cũng tìm được giải pháp cho vấn đề trên, đó là hàm getimagesize() .
Tại sao là hàm getimagesize() ?
Hàm này sẽ trả về kích thước của một file ảnh bất kì, kết quả được chứa trong một mảng (array) với 7 phần tử. Nói cách khác là nếu hàm này trả về array thì file ảnh đó là có thực. (Không có ảnh thì lấy đâu ra kích thước ^^)
Để hiểu hơn, các bạn có thể xem ví dụ dưới đây
<?php
$file_path = 'http://tanviet.speedymirror.com/wp-content/uploads/2011/07/border_radius.jpg' ;
//Ham file_exists()
if (file_exists($file_path)) {
echo "This file exists!";
}
else {
echo "This file does not exist";
}
//Ham getimagesize() cho ket qua chinh xac hon
$url = getimagesize($file_path);
if(is_array($url)){
echo "<br />This file exists!";
}
else {
echo "<br />This file does not exist!";
}
?>
$file_path = 'http://tanviet.speedymirror.com/wp-content/uploads/2011/07/border_radius.jpg' ;
//Ham file_exists()
if (file_exists($file_path)) {
echo "This file exists!";
}
else {
echo "This file does not exist";
}
//Ham getimagesize() cho ket qua chinh xac hon
$url = getimagesize($file_path);
if(is_array($url)){
echo "<br />This file exists!";
}
else {
echo "<br />This file does not exist!";
}
?>
Kết quả
This file does not exist
This file exists!
This file exists!
Kết luận,
Qua kết quả nhận được có thể nhận thấy sự khác nhau khi sử dụng hàm file_exists() và getimagesize(), từ đó bạn có thể áp dụng cho nhiều trường hợp khác. Tôi hi vọng bài viết này sẽ giúp ích phần nào cho công việc lập trình của các bạn.
Đăng nhận xét