[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Красивый путь для динамически формирующихся картин
dron4ik
Это не вопрос, просто хочу скинуть свое решение задачи с которой я сталкивался ранее но только сейчас додумался как реализовать, возможно это никому и не нужно, но мне в свое время очень помогло бы)

И там допустим я делаю ресайз картинок через скрипт timthumb.php - это довольно популярно было в моей практике еще год назад, сейчас же я предпочитаю другие способы организации привюшек, но и этот способ далеко не убираю.

И так, работает эта тема следующим образом, в теге <img> в параметре src задается путь через скрипт, в коде это выглядит примерно так:

<img src="/timthumb.php?src=<?php echo $img; ?>&w=150&h=100" />


в src мы передаем реальный путь к картинке которую уменьшаем
w - ширина которая нам нужна
h - высота которая нам нужна

При первичном запросе скрипт проверяет есть ли уже создана миниатюра, если нет то создает ее в папке cache и при повторном просто берет ее от туда.

Минус этого способа в том что появляется дополнительная точка входа и при каждом запросе поднимается php машина.

Минус такого способа еще и в том что пути к картинкам жутко не красивые, и гугл бот при оптимизации постоянно на них ругается.

Суть сей публикации заключается в моем способе превратить дурацкий путь в красивый.

было
<img src="/timthumb.php?src=/uploads/2014/12/1.jpg&w=150&h=100" />


Станет
<img src="/images/150x100/uploads/2014/12/1.jpg" />


И так, я решил пойти по такому пути:
Создал в корне папку images в которую закинул .htaccess с следующим содержанием :

RewriteEngine On  

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^([0-9]+)x([0-9]+)/(.*)$ /timthumb.php?src=\/$3&w=$1&h=$2


С учетом того что timthumb.php лежит в корне сайта

А также добавил функции

function get_th_img( $src , $w , $h ){
return str_replace($_SERVER['SERVER_NAME'], $_SERVER['SERVER_NAME'].'/images/'.$w.'x'.$h, $src);
}


function th_img( $src , $w , $h ){
echo get_th_img( $src , $w , $h );
}


И теперь вмето вызова
<img src="/timthumb.php?src=<?php echo $img; ?>&w=150&h=100" />

делаю
<img src="<?php th_img($img,230,145); ?>" />


Все. Картинки отображаются корректно проблем нет, гугл не ругается.

Также не забыл поместить в папку images index.php для предотвращения несанкционированного доступа (на всяк)


Вот так вот, напоминаю что этот пост года три назад был бы для меня спасительным в ряде вопросов, и также напоминаю что не агитирую такой метод создания привюшек так как он несет за собой ряд неудобство, но на скорую руку сойдет)

Прошу сильно не критиковать, а если есть свое решение, то кидайте, может кому и пригодится)

Посему благодарю за прочтение и желаю всем верхних путей)

_____________
Ex3m.com.ua — Активный образ жизни
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.