Hiện tại mình làm 1 cái proxy chuyển ảnh của người ta về qua proxy mình rồi mới xử lý tiếp. nhưng mình gặp phải 3 vấn đề mà chưa biết làm sao a e giúp mình với. 1 - gặp phải ảnh lỗi -> show ra ảnh mặc định 2 - gặp phải ảnh lỗi của google -> show ra ảnh mặc định ví dụ -- https://4.bp.blogspot.com/-Sr7OyegN1SI/WCA8bpUYSOI/AAAAAAE4YYM/5xi5UvN4Cwg/w1900/vai-loi.jpg 3 - gặp phải ảnh giống ảnh mình không cho phép(ảnh này đã xác định và mình có file nó .jpg) -> show ra ảnh mặc định do mình không biết nhiều về curl nên không tùy biến được cám ơn và mong được giúp đỡ. Code: function proxy(){ $link = $_GET["url_img"]; $url = base64_decode($link); header('Content-Type: image/vnd.microsoft.icon'); echo $this->curl($url); } function curl($url){ $ch = @curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_COOKIEJAR, ''); curl_setopt($ch, CURLOPT_COOKIEFILE, ''); $result = curl_exec($ch); curl_close($ch); return $result; }
Mấy cái này đơn giản mà tư duy lập trình tí là làm được thôi 1. Ảnh lỗi ntn là ảnh lỗi 404 thì check header 2. Check header xem ảnh lỗi thì show if else 3. Giống thì phải lưu db rồi check hash xem trùng không rồi xử lý
1&2: dùng onerror trong thẻ img 3: làm vớ vẩn thì được chứ làm độ chính xác cao hoặc tập ảnh cần loại bỏ lớn thì quên đi.
Cái thứ 3 thì hơi khó bác ạ. Chỉ tương đối thôi. Giống như bác @money nói, Cần độ chính xác cao và nhiều ảnh thì ngay cả curl bác còn không tùy biến đc thì nên bỏ qua cái này đi