- 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('формат не определён, шли-бы вы лесом');
}
Vasiliy 20.01.2014 18:00 # +9
kegdan 20.01.2014 19:42 # +1
dosmth or die
inkanus-gray 20.01.2014 22:01 # +2
Stertor 20.01.2014 22:07 # +1
Bart 21.01.2014 03:40 # +2
+1
А "виндузятникам" предлагается ребус:
http://radikal.ua/data/upload/0fccf/6895e/c5de0f9517.jpg
inkanus-gray 21.01.2014 07:25 # −1
guest 21.01.2014 07:53 # 0
Stertor 21.01.2014 12:29 # 0
И все таки... это гифка. Браузер не смотрит на тип контента, он определяет тип изображения сам - в отличие прог для спаминга.
inkanus-gray 24.01.2014 09:09 # 0
govnomonad 21.01.2014 05:37 # 0
извращенец.
guest 21.01.2014 12:42 # 0
Stertor 22.01.2014 23:10 # 0
psycho-coder 23.01.2014 08:31 # 0
bormand 23.01.2014 08:34 # +3
psycho-coder 23.01.2014 08:35 # 0
3Doomer 23.01.2014 07:37 # +1
psycho-coder 23.01.2014 08:24 # −5
http://ru2.php.net/manual/ru/function.getimagesize.php
3Doomer 23.01.2014 08:30 # 0
функция названа некорректно.
psycho-coder 23.01.2014 08:34 # −4
3Doomer 23.01.2014 08:44 # 0
psycho-coder 23.01.2014 08:45 # −2
guest 07.02.2014 23:11 # +1
bormand 07.02.2014 23:26 # +3
inkanus-gray 07.02.2014 23:32 # +1
defecate-plusplus 07.02.2014 23:34 # +1
laMer007 08.02.2014 00:07 # +1
roman-kashitsyn 23.01.2014 10:38 # +1
anonimb84a2f6fd141 22.01.2014 19:43 # +2
ТАк и вижу, как блокнот залипает так, что под аккомпанемент тормозов приходится убивать процесс.
bormand 22.01.2014 19:49 # +4
Вот и мучается бедняга Стертор...
Stertor 22.01.2014 23:11 # 0
anonimb84a2f6fd141 22.01.2014 23:17 # 0
Это как? :)
Кстати, в ноутбучном мониторе есть какая-то хрень, когда я коснулся ее (изолятор), меня как будто сильно обожгло. Что это было?
Stertor 23.01.2014 02:21 # 0
Хз, что. Мой ноутбук сгорел 4,5 лет назад ;)
anonimb84a2f6fd141 23.01.2014 02:41 # +1
1024-- 23.01.2014 17:43 # +2
http://ko.ko.ko.com.uaa/img/ko/2005/49/012482.jpg
Время, проведённое на ГК в последние дни не прошло даром.
Автоматический детектор "ко-ко-ко" уже не отключишь.
inkanus-gray 23.01.2014 19:56 # +1
Допустим, на входе плюс относительно массы. Зарядим конденсатор входным напряжением, потом оторвём его и подключим плюсом к массе. Ололо, мы получили отрицательное относительно массы напряжение! Инвертор!
Та хрень, которая питает люминесцентную лампу, тоже из постоянного напряжения вырабатывает переменное, чтобы затем его выпрямить, но только использует трансформатор для повышения напряжения, поэтому с тем же успехом может называться и умножителем.
К вопросу Анонимба, что это было: 600 вольт — не укус комара.
Stertor 23.01.2014 21:37 # 0
~1000, люминесцентная же.
anonimb84a2f6fd141 24.01.2014 16:27 # 0
Что, простите?
Я не касался проводов, я только руку поднес, и это был не удар током, а именно ожог.
bormand 24.01.2014 17:30 # 0
А это скорее всего из-за довольно высокой частоты инвертора - от постоянки удар, от 50гц ощутимо трясет, а от килогерца и выше просто жжется.
anonimb84a2f6fd141 24.01.2014 17:39 # 0
От 9вольт, кстати, можно миниожог (химический?) получить.
bormand 24.01.2014 18:00 # +1
А при 600в (если верить инканусу) и не надо касаться голых проводов... 600в пробивают чуть больше полумиллиметра воздуха. Видимо изоляция на той детальке была слишком тонкой, вот тебя и зацепило пробоем.
eth0 24.01.2014 18:22 # 0
bormand 24.01.2014 18:30 # +2
eth0 24.01.2014 18:58 # +1
Stertor 24.01.2014 21:31 # +2
Ваш покорный слуга выдрал сей выпрямитель целиком из телика, нарадовался и тут же сжег, подав искру из присоски на корпус одного из транзисторов (
Stertor 24.01.2014 21:32 # 0
Унылый троллинг.
inkanus-gray 24.01.2014 21:39 # 0
bormand 24.01.2014 21:40 # +4
inkanus-gray 24.01.2014 21:42 # +1
С «Кроною» в зубах мёртвый программист...
bormand 24.01.2014 21:50 # +1
Челюсть долой,
Крону он тащил с собой.
inkanus-gray 24.01.2014 21:55 # +1
И ударить током он всех любил.
guest 24.01.2014 21:58 # +2
Мы об этом никогда не узнаем. Они так и не дошли до больницы. Зато те кто выжили - попали в статистику.
guest 24.01.2014 23:05 # 0
1024-- 24.01.2014 23:11 # 0
P. S. А что там на гейдеве было?
anonimb84a2f6fd141 24.01.2014 22:36 # −2
Stertor 24.01.2014 22:38 # 0
anonimb84a2f6fd141 24.01.2014 23:33 # 0
Stertor 24.01.2014 22:03 # 0
inkanus-gray 24.01.2014 22:19 # +4
Stertor 24.01.2014 22:29 # −1
Stertor 24.01.2014 22:04 # +3
Поэтому я всегда полизывал самодельный выпрямитель.
anonimb84a2f6fd141 24.01.2014 22:35 # −2
Stertor 24.01.2014 22:39 # 0
anonimb84a2f6fd141 22.01.2014 23:16 # 0
Да уж.
Stertor 22.01.2014 23:10 # 0
anonimb84a2f6fd141 22.01.2014 23:19 # +2
Для этого хранят в памяти только показываемый кусок файла, или что-то еще мутят (mmap). А дурачки, использующие блокнот не по назначению, плачут и жрут кактус.
Stertor 22.01.2014 23:22 # +1
[trollface.jpg]
anonimb84a2f6fd141 23.01.2014 00:54 # 0
>notepad ++
/0
Stertor 23.01.2014 01:32 # 0
Попробуй!..
1024-- 23.01.2014 17:46 # 0
bormand 23.01.2014 18:00 # +1
1024-- 23.01.2014 18:16 # 0
Нет.
Но если в файле мало переводов строки (как в картинке), начинается сущий ад. Конечно, это может даже быстрее, чем некоторые *.doc в LibreOffice открываются, но по сравнению с исходниками в 50-100кб - невыносимая мука.
Таки bormand изменил своё мнение и рекомендует определять тип картинок в notepad++?
bormand 23.01.2014 18:19 # +1
А куда деваться? file же на винде изкоробки не стоит...
defecate-plusplus 23.01.2014 18:27 # +2
Stertor 23.01.2014 21:38 # +1
anonimb84a2f6fd141 24.01.2014 16:27 # 0
eth0 23.01.2014 19:08 # +1
bormand 23.01.2014 19:12 # +1
O_o
eth0 23.01.2014 20:52 # +1
bormand 23.01.2014 21:03 # 0
О_о
anonimb84a2f6fd141 24.01.2014 16:28 # 0
bormand 24.01.2014 16:41 # 0
eth0 24.01.2014 18:23 # 0
1024-- 23.01.2014 19:51 # +1
jpg, 1.7Мб, менее секунды, 12 тысяч строк
mov, 95.2Мб, секунды три, 854 тысячи строк
полунетбук с core i3 и диском 5400 об/мин
Мда, прошу прощения, в этих файлах слишком много строк. Просто я под впечатлением был: в последний раз открывал JSON с данными по ГК - 74Мб и ни одного переноса строки. Эта хрень открывается долгие секунды и минуты и заставляет компьютер задуматься, если нажмёшь не ту кнопку.
bormand 23.01.2014 20:11 # +4
Отличный полигон для испытания потоковых парсеров и заливалок в СУБД ;)
inkanus-gray 23.01.2014 20:39 # 0
bormand 23.01.2014 20:46 # +1
anonimb84a2f6fd141 24.01.2014 16:29 # −1
рнр?
Vasiliy 24.01.2014 16:32 # 0
bormand 24.01.2014 16:33 # +1
PostgreSQL.
anonimb84a2f6fd141 24.01.2014 17:40 # −1
psycho-coder 23.01.2014 08:29 # 0
defecate-plusplus 23.01.2014 10:25 # +2
bormand 23.01.2014 14:40 # +1
3Doomer 24.01.2014 08:49 # +1
anonimb84a2f6fd141 24.01.2014 16:29 # +1
bormand 22.01.2014 19:55 # +1
Это на чем же их надо писать, чтобы они от этого ломались?
Большинство адекватных графических библиотек вполне так автодетектят формат картинок по контенту, и смотрят на эти попытки как на говно :)
Vasiliy 22.01.2014 20:03 # 0
вот сегодня нашел. Даже js может.
Stertor 22.01.2014 23:24 # 0
LispGovno 22.01.2014 23:29 # +2
Stertor 22.01.2014 23:32 # 0
Lure Of Chaos 21.01.2014 02:14 # 0
inkanus-gray 21.01.2014 05:42 # +1
2. Сервер (или браузер, когда постит файлы через форму) может возвращать бессмыслицу типа application/octet-stream.
bormand 21.01.2014 07:06 # 0
В пингвиноси файлы тоже могут быть локальными, но кого это ебет волнует? :)
> бессмыслицу типа application/octet-stream
Ну если они даже для картинок не могут адекватно определить mime тип - втопку такие браузеры\сервера.
inkanus-gray 21.01.2014 07:12 # 0
2. В некоторых случаях выбирать не приходится:
а) нужно забрать изображение с чужого кривого сервера;
б) нужно пофиксить проблему, не заставляя пользователя обновлять браузер.
myaut 21.01.2014 07:59 # +2
inkanus-gray 21.01.2014 08:17 # 0
Но с другой стороны, finfo_file обладает недостатками:
1. Навязывает лишние вызовы (finfo_open, finfo_close).
2. Зависит от наличия файла magic.mime.
3. У getimagesize есть приятный бонус в виде возвращения размера изображения.
P.S. Если размер не нужен, то можно посмотреть exif_imagetype.
bormand 21.01.2014 10:34 # +1
Дык оно при любом mime типе заберется. Ну разве что браузер его может не показать, но скачать то можно в любом случае.
> нужно пофиксить проблему, не заставляя пользователя обновлять браузер.
А mime тип, который отправляет браузер, вроде бы из пыхи и не достать никак. Вот и остается смотреть на сам файл, который пыха выложила во временную папку. А тут все сводится к случаю с локальным файлом.
inkanus-gray 21.01.2014 10:45 # 0
2. Что отображает массив $_FILES?
bormand 22.01.2014 18:09 # +1
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 и т.п.. Была бы такая функция - проблемы бы не было.
anonimb84a2f6fd141 22.01.2014 19:45 # +3
inkanus-gray 23.01.2014 06:53 # +2
Но грузить графический файл целиком в переменную, чтобы потом передать его содержимое функции — не меньшее мудачество.
На самом деле решение проблемы — отказаться наконец-то от уёбищной GD и перейти на Image Magick, но её нет на хостингах.
bormand 23.01.2014 08:31 # +4
Порочный пыхокруг.
Vasiliy 23.01.2014 14:37 # 0
anonimb84a2f6fd141 24.01.2014 17:42 # +2
anonimb84a2f6fd141 24.01.2014 17:41 # +1
santa_microbe 23.01.2014 04:56 # +4
anonimb84a2f6fd141 23.01.2014 00:54 # 0
Свои типы исключений пыхари еще делать не научились?
inkanus-gray 23.01.2014 10:49 # 0
kegdan 23.01.2014 11:23 # −1
LispGovno 23.01.2014 12:19 # 0
kegdan 23.01.2014 12:21 # −1
inkanus-gray 23.01.2014 12:51 # 0
kegdan 23.01.2014 13:38 # 0
kegdan 23.01.2014 13:44 # 0
/\.jpe?g$/i
Stertor 23.01.2014 14:44 # +1
// соответствует ли extension jpeg ?
kegdan 23.01.2014 14:47 # +3
смотри, флаг i вырубает регистр
поэтому
/\.jpe{0,1}g$/i
а {0,1} это ?
Поэтому приходим к
/\.jpe?g$/i
Stertor 23.01.2014 14:47 # 0
kegdan 23.01.2014 14:49 # +1
http://uzer.com.ua/cross/
Stertor 23.01.2014 14:50 # 0
kegdan 23.01.2014 14:52 # 0
Stertor 23.01.2014 14:53 # 0
kegdan 23.01.2014 14:55 # 0
Stertor 23.01.2014 15:03 # 0
1024-- 24.01.2014 00:17 # +1
По-моему, это более уместно, если хочется оттачивать навык работы с регулярными выражениями.
Анальный кроссворд Кегдана - не что иное, как попытка поиметь мозг. Это всё равно, что предлагать судоку ребёнку, изучающему цифры, или в учебник по китайскому языку поместить математические задачи только потому, что сформулированы они на китайском. Для общего развития и тренировки ума полезно, но не нужно.
kegdan 24.01.2014 17:20 # 0
Имхо это сложнее.
1024-- 24.01.2014 17:56 # 0
Ответов нет, разве что можно почитать мнения людей на хабре. К тому же, там много заданий, которые не парсятся регулярками, где верного ответа в общем случае нет, а есть только хитрость тренирующегося. Например, в задании про числа (по-моему, кратные трём) кто-то с хабра выделил в регулярке характерные последовательности для чисел из примера вместо написания честной регулярки (которой скорее всего не существует).
> Имхо это сложнее.
Если выводить невыводимые регулярки, то это бесконечно сложно; если особо не задротствовать и в некоторых случаях не матчить всё, то терпимо.
Мне лично тот кроссворд показался какой-то невыносимой мукой, я минут 40 посидел, штук 15-20 букв и понял, что я его никогда не закончу. Всё же, это для любителей задач для развития ума, а мне лень.
Скоро окончательно отупею и стану жквери-программистом-копипастером.
kegdan 24.01.2014 18:06 # 0
Вот честно, если бы меня кто то попросил помочь с такой регуляркой я бы ему сказал, что он не понял сути регулярок)
А вообще интересная вещь, но точно не для новичков.
А кроссворд прививает автоматизм. Если такой решить то проблемы типа - я перепутал [ ] и () сразу отпадают
1024-- 24.01.2014 18:30 # 0
> я бы ему сказал, что он не понял сути регулярок
Готовит программиста-теоретика к суровой реальной жизни и реальным задачам, отучает от нагромождения слоёв абстракций :)
Т. е. вместо многолетних раздумий о том, как можно заматчить все простые числа, человек напишет регулярку ограниченного их набора, поскольку во-первых, инт - до пары миллиардов только, а во-вторых, он делает сайт для школьников, которым простые числа более 1000 нужны как козе баян.
Кроссворд я бы отправил в качестве задания на олимпиаду по математике. А вот если regex.alf.nu не подходит для новичков, то лучше вспомнить ссылку борманда. Она уж идеально подходит, примеры там для регулярок адекватные и, что важно, думать не надо.
kegdan 24.01.2014 18:36 # 0
1024-- 24.01.2014 18:40 # 0
>> А вот если regex.alf.nu не подходит для новичков, то лучше вспомнить ссылку борманда
> Ну я то не новичок.
Я думал, мы об абстрактных новичках говорили, а не переходили на личности :)
kegdan 24.01.2014 18:41 # 0
anonimb84a2f6fd141 24.01.2014 16:30 # 0
jpeg?
1024-- 24.01.2014 16:44 # −1
Stertor 23.01.2014 14:58 # +1
trollface.PnG
[Trollface.jpg]