- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
//Создаём новое изображение из старого // gif png jpg
if (preg_match('/[.](GIF)|(gif)$/', $filename)) {
$src = imagecreatefromgif($target); //если оригинал был в формате gif,
} else if (preg_match('/[.](PNG)|(png)$/', $filename)) {
$src = imagecreatefrompng($target); //если оригинал был в формате png,
} else if (preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
$src = ImageCreateFromJPEG($target); //если оригинал был в формате jpg,
} else {
throw new Exception('формат не определён, шли-бы вы лесом');
}
dosmth or die
+1
А "виндузятникам" предлагается ребус:
http://radikal.ua/data/upload/0fccf/6895e/c5de0f9517.jpg
И все таки... это гифка. Браузер не смотрит на тип контента, он определяет тип изображения сам - в отличие прог для спаминга.
извращенец.
http://ru2.php.net/manual/ru/function.getimagesize.php
функция названа некорректно.
ТАк и вижу, как блокнот залипает так, что под аккомпанемент тормозов приходится убивать процесс.
Вот и мучается бедняга Стертор...
Это как? :)
Кстати, в ноутбучном мониторе есть какая-то хрень, когда я коснулся ее (изолятор), меня как будто сильно обожгло. Что это было?
Хз, что. Мой ноутбук сгорел 4,5 лет назад ;)
http://ko.ko.ko.com.uaa/img/ko/2005/49/012482.jpg
Время, проведённое на ГК в последние дни не прошло даром.
Автоматический детектор "ко-ко-ко" уже не отключишь.
Допустим, на входе плюс относительно массы. Зарядим конденсатор входным напряжением, потом оторвём его и подключим плюсом к массе. Ололо, мы получили отрицательное относительно массы напряжение! Инвертор!
Та хрень, которая питает люминесцентную лампу, тоже из постоянного напряжения вырабатывает переменное, чтобы затем его выпрямить, но только использует трансформатор для повышения напряжения, поэтому с тем же успехом может называться и умножителем.
К вопросу Анонимба, что это было: 600 вольт — не укус комара.
~1000, люминесцентная же.
Что, простите?
Я не касался проводов, я только руку поднес, и это был не удар током, а именно ожог.
А это скорее всего из-за довольно высокой частоты инвертора - от постоянки удар, от 50гц ощутимо трясет, а от килогерца и выше просто жжется.
От 9вольт, кстати, можно миниожог (химический?) получить.
А при 600в (если верить инканусу) и не надо касаться голых проводов... 600в пробивают чуть больше полумиллиметра воздуха. Видимо изоляция на той детальке была слишком тонкой, вот тебя и зацепило пробоем.
Ваш покорный слуга выдрал сей выпрямитель целиком из телика, нарадовался и тут же сжег, подав искру из присоски на корпус одного из транзисторов (
Унылый троллинг.
С «Кроною» в зубах мёртвый программист...
Челюсть долой,
Крону он тащил с собой.
И ударить током он всех любил.
Мы об этом никогда не узнаем. Они так и не дошли до больницы. Зато те кто выжили - попали в статистику.
P. S. А что там на гейдеве было?
Поэтому я всегда полизывал самодельный выпрямитель.
Да уж.
Для этого хранят в памяти только показываемый кусок файла, или что-то еще мутят (mmap). А дурачки, использующие блокнот не по назначению, плачут и жрут кактус.
[trollface.jpg]
>notepad ++
/0
Попробуй!..
Нет.
Но если в файле мало переводов строки (как в картинке), начинается сущий ад. Конечно, это может даже быстрее, чем некоторые *.doc в LibreOffice открываются, но по сравнению с исходниками в 50-100кб - невыносимая мука.
Таки bormand изменил своё мнение и рекомендует определять тип картинок в notepad++?
А куда деваться? file же на винде изкоробки не стоит...
O_o
О_о
jpg, 1.7Мб, менее секунды, 12 тысяч строк
mov, 95.2Мб, секунды три, 854 тысячи строк
полунетбук с core i3 и диском 5400 об/мин
Мда, прошу прощения, в этих файлах слишком много строк. Просто я под впечатлением был: в последний раз открывал JSON с данными по ГК - 74Мб и ни одного переноса строки. Эта хрень открывается долгие секунды и минуты и заставляет компьютер задуматься, если нажмёшь не ту кнопку.
Отличный полигон для испытания потоковых парсеров и заливалок в СУБД ;)
рнр?
PostgreSQL.
Это на чем же их надо писать, чтобы они от этого ломались?
Большинство адекватных графических библиотек вполне так автодетектят формат картинок по контенту, и смотрят на эти попытки как на говно :)
вот сегодня нашел. Даже js может.
2. Сервер (или браузер, когда постит файлы через форму) может возвращать бессмыслицу типа application/octet-stream.
В пингвиноси файлы тоже могут быть локальными, но кого это ебет волнует? :)
> бессмыслицу типа application/octet-stream
Ну если они даже для картинок не могут адекватно определить mime тип - втопку такие браузеры\сервера.
2. В некоторых случаях выбирать не приходится:
а) нужно забрать изображение с чужого кривого сервера;
б) нужно пофиксить проблему, не заставляя пользователя обновлять браузер.
Но с другой стороны, finfo_file обладает недостатками:
1. Навязывает лишние вызовы (finfo_open, finfo_close).
2. Зависит от наличия файла magic.mime.
3. У getimagesize есть приятный бонус в виде возвращения размера изображения.
P.S. Если размер не нужен, то можно посмотреть exif_imagetype.
Дык оно при любом mime типе заберется. Ну разве что браузер его может не показать, но скачать то можно в любом случае.
> нужно пофиксить проблему, не заставляя пользователя обновлять браузер.
А mime тип, который отправляет браузер, вроде бы из пыхи и не достать никак. Вот и остается смотреть на сам файл, который пыха выложила во временную папку. А тут все сводится к случаю с локальным файлом.
2. Что отображает массив $_FILES?
The mime type of the file, if the browser provided this information. An example would be "image/gif". This mime type is however not checked on the PHP side and therefore don't take its value for granted.
> Но может возникнуть проблема на этапе
А тут уже очередное мудачество PHP: нет функции, которая загружала бы рисунок любого известного пыхе типа (или я просто не могу ее найти), а есть только fromjpg, frompng и т.п.. Была бы такая функция - проблемы бы не было.
Но грузить графический файл целиком в переменную, чтобы потом передать его содержимое функции — не меньшее мудачество.
На самом деле решение проблемы — отказаться наконец-то от уёбищной GD и перейти на Image Magick, но её нет на хостингах.
Порочный пыхокруг.
Свои типы исключений пыхари еще делать не научились?
/\.jpe?g$/i
// соответствует ли extension jpeg ?
смотри, флаг i вырубает регистр
поэтому
/\.jpe{0,1}g$/i
а {0,1} это ?
Поэтому приходим к
/\.jpe?g$/i
http://uzer.com.ua/cross/
По-моему, это более уместно, если хочется оттачивать навык работы с регулярными выражениями.
Анальный кроссворд Кегдана - не что иное, как попытка поиметь мозг. Это всё равно, что предлагать судоку ребёнку, изучающему цифры, или в учебник по китайскому языку поместить математические задачи только потому, что сформулированы они на китайском. Для общего развития и тренировки ума полезно, но не нужно.
Имхо это сложнее.
Ответов нет, разве что можно почитать мнения людей на хабре. К тому же, там много заданий, которые не парсятся регулярками, где верного ответа в общем случае нет, а есть только хитрость тренирующегося. Например, в задании про числа (по-моему, кратные трём) кто-то с хабра выделил в регулярке характерные последовательности для чисел из примера вместо написания честной регулярки (которой скорее всего не существует).
> Имхо это сложнее.
Если выводить невыводимые регулярки, то это бесконечно сложно; если особо не задротствовать и в некоторых случаях не матчить всё, то терпимо.
Мне лично тот кроссворд показался какой-то невыносимой мукой, я минут 40 посидел, штук 15-20 букв и понял, что я его никогда не закончу. Всё же, это для любителей задач для развития ума, а мне лень.
Скоро окончательно отупею и стану жквери-программистом-копипастером.
Вот честно, если бы меня кто то попросил помочь с такой регуляркой я бы ему сказал, что он не понял сути регулярок)
А вообще интересная вещь, но точно не для новичков.
А кроссворд прививает автоматизм. Если такой решить то проблемы типа - я перепутал [ ] и () сразу отпадают
> я бы ему сказал, что он не понял сути регулярок
Готовит программиста-теоретика к суровой реальной жизни и реальным задачам, отучает от нагромождения слоёв абстракций :)
Т. е. вместо многолетних раздумий о том, как можно заматчить все простые числа, человек напишет регулярку ограниченного их набора, поскольку во-первых, инт - до пары миллиардов только, а во-вторых, он делает сайт для школьников, которым простые числа более 1000 нужны как козе баян.
Кроссворд я бы отправил в качестве задания на олимпиаду по математике. А вот если regex.alf.nu не подходит для новичков, то лучше вспомнить ссылку борманда. Она уж идеально подходит, примеры там для регулярок адекватные и, что важно, думать не надо.
>> А вот если regex.alf.nu не подходит для новичков, то лучше вспомнить ссылку борманда
> Ну я то не новичок.
Я думал, мы об абстрактных новичках говорили, а не переходили на личности :)
jpeg?
trollface.PnG
[Trollface.jpg]