- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
БД mysql в таблице banner в поле image хранятся данные с именами файлов.
Типы файлов разные: gif/jpg/jpeg/png
1-5-b6c.gif
1-5-b4c.png
2-10-23e.jpeg
135-b6c.gif
Выводятся примерно таким запросом:
$banner = $base->exec('select id, user_id, image, url from banner limit '.$limit);
Как проверить тип файла и вывести, например, все файлы кроме gif?
$banner = $base->exec("select id, user_id, image, url from banner where image like '%gif%' limit ".$limit); - выведет все gif
$banner = $base->exec("select id, user_id, image, url from banner where image NOT like '%gif%' limit ".$limit); - выведет все кроме gif
подвоные камни если баннер называется gif-2-2-3.jpg
то он попадет в первую выборку но не попадет во вторую, но можно юзать regexp
mts снизу точнее указал %.gif ))
image NOT LIKE '%.gif'
БД mysql в таблице banner в поле image хранятся данные с именами файлов.
Типы файлов разные: gif/jpg/jpeg/png
Выводятся примерно таким запросом:
$banner = $base->exec('select id, user_id, image, url from banner limit '.$limit);
Как проверить тип файла и вывести, например, все файлы кроме gif?
$banner = $base->exec('select id, user_id, image, url from banner
WHERE image not like '%.gif'
limit '.$limit);
А если таблица очень большая, то для увеличении производительности, можно добавить ещё одну колонку (image_type) с типом INT, в которой будет согхранятся цифра в соответствии с типом файла. И сделать индекс на это поле.
Например, если для gif будет цифра 1, то запрос будет:
$banner = $base->exec('select id, user_id, image, url from banner
WHERE image_type != 1
limit '.$limit);
P.S. :) пока писал, другие опередили
Да, таблица очень большая и постоянно растёт..
Как тогда сделать простановку в зависимости от типа?
Нужно просто разделение: анимированное\не анимированное изображение. Или типа гиф и всё остальное. Как автоматически помечать gif файлы? И что в таком случае делать с уже огромной базой - проставлять ручками?
Да, таблица очень большая и постоянно растёт..
Как тогда сделать простановку в зависимости от типа?
Нужно просто разделение: анимированное\не анимированное изображение. Или типа гиф и всё остальное. Как автоматически помечать gif файлы? И что в таком случае делать с уже огромной базой - проставлять ручками?
сначала добавить через phpmyadmin или прочее еще одну колонку в таблицу например type тип tinyint
или enum
сделать скрипт php который причешет всю таблицу
если сами не можете, напишите в pm я вам бесплатно сделаю
с этим понятно..
Мне нужен пример кода именно - проверка на тип файл, с остальным справлюсь.
Чирканите тут, может еще кому полезно будет.
---------- Добавлено 28.06.2012 в 12:07 ----------
Еще посоветовали такое определения анимации..
function is_ani($filename) {
if(!($fh = @fopen($filename, 'rb')))
return false;
$count = 0;
//an animated gif contains multiple "frames", with each frame having a
//header made up of:
// * a static 4-byte sequence (\x00\x21\xF9\x04)
// * 4 variable bytes
// * a static 2-byte sequence (\x00\x2C)
// We read through the file til we reach the end of the file, or we've found
// at least 2 frame headers
while(!feof($fh) && $count < 2) {
$chunk = fread($fh, 1024 * 100); //read 100kb at a time
$count += preg_match_all('#\x00\x21\xF9\x04.{4}\x00\x2C#s', $chunk, $matches);
}
fclose($fh);
return $count > 1;
}
Но что-то не соображу как встроить в свой код. Варианты выше более понятны..
добавьте поле type тип tinyint, значение по умолчанию 0
блин парсер портит код where id=$row [ id ] только уберите пробелы
как то так, ну и когда добавляете изображение в базу сделайте проверку на тип файла и ставьте соответствующее значение в базу
не до конца понял - отписал в ЛС..