1. PHP / Говнокод #12401

    +69

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    //А теперь я научу вас как правильно определять тип картинки
    $type = '';
    		
    # JPEG:
    $src = @imagecreatefromjpeg("./js/ajax_drag_drop_upload/php/files/".$f);
    if ($src !== false)
    {
    	$type = 'jpg';
    }
    else {
    	# GIF:
    	$src = @imagecreatefromgif("./js/ajax_drag_drop_upload/php/files/".$f);
    	if ($src !== false)
    	{
    		$type = 'gif';
    	}
    	else {
    		# PNG:
    		$src = @imagecreatefrompng("./js/ajax_drag_drop_upload/php/files/".$f);
    		if ($src !== false)
    		{
    			$type = 'png';
    		}
    	}	
            // А что делать с BMP? Та ну нафиг, BMP - это миф...
    }
    // Вот и все. Теперь вы знаете с каким типом картинки работаете
    // Ну а здесь уже можете писать ваш говнокод

    Очень эпичный code snippet. Посмотрите как автор ловко владеет возможностями языка PHP. В закладки!

    Запостил: SunnyMagadan, 10 Января 2013

    Комментарии (11) RSS

    • Мимими
      Ответить
    • Радует комментарий, разрешающий дальше писать нам свой говнокод, автор четко разграничивает свое говно и чужое )
      Ответить
    • -I know image type.
      -Show me.
      Ответить
    • а что, расширение или мимими-тип скажут правду?
      Ответить
      • Если на сарае написано хуй а там дроваmime-тип не совпадает с фактическим форматом, нафиг это изображение. Небось ктулхацкер балуется.
        Ответить
      • Даже если опустить рассуждения о валидности метода (здесь я согласен с @Vindicar), код все равно говно.
        Ответить
      • Мимими-тип некоторые браузеры определяют неправильно, на него полагаться не всегда можно. А на расширение и подавно. Есть такая фишка: в открывшееся окно выбора файла можно вставить URL, тогда файл скачается системным браузером (в Винде это ИЕ) и отправится из его кэша. В этом случае возможно получение файла без расширения.

        Стандартный путь пышечника — определение типа по сигнатуре:
        $size = GetImageSize($filename);
        if($size[2] == IMAGETYPE_GIF) $format = 'GIF';
        else if($size[2] == IMAGETYPE_JPEG) $format = 'JPG';
        else if($size[2] == IMAGETYPE_PNG) $format = 'PNG';
        else die("<p>Та ну вас со своим BMP</p>");
        Ответить
    • I found that:
      imagecreatefromJPEG is for .JPEG and .JPG ending
      &
      imagecreatefromjpeg is for .jpeg and .jpg ending.

      That function is case sensitive.
      Ответить

    Добавить комментарий