CURL cho image

Discussion in 'Linux - PHP - Python - C# - Java' started by hoangvn92.it, Nov 18, 2018.

  1. hoangvn92.it

    hoangvn92.it Sơ Nhập Giang Hồ

    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;
    }
    
     
  2. Nai

    Nai MiddleMan Staff Member

    {brick}
    Hóng
     
  3. Phan Thị

    Phan Thị Bang Chúng

    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ý
     
    hoangvn92.it likes this.
  4. console

    console Bang Chúng

    Sao k config nginx làm proxy ảnh luôn nhỉ :D
     
  5. hoangvn92.it

    hoangvn92.it Sơ Nhập Giang Hồ

    mình còn chưa biết luôn nếu chưa nghe bạn nói =))
     
  6. money

    money Hương Chủ

    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.
     
    hoangvn92.it likes this.
  7. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    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 {big_smile}{big_smile}{big_smile}
     
  8. console

    console Bang Chúng

  9. hoangvn92.it

    hoangvn92.it Sơ Nhập Giang Hồ