[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите поменять ссылку на картинку в картинке
soniclord
имеется текст такого содержания
<img alt="" src="/images/temp_img.png" width="245" height="139">и остальные теги
я делаю thumbnail'ы и мне нужно заменять ссылку которая находится в src на картинку уменьшенную. Мне сказали что делается это с помощью регулярных выражений. Я поискал в сети, но там такие страшные буквы.... Не могли бы вы помочь справиться с этой проблемой
p.s. если можно еще бы height и width убрать rolleyes.gif



Спустя 1 час, 31 минута, 4 секунды (22.12.2009 - 17:30) inpost написал(а):
Ничего не понятно)))
Где, как, какой результат, что использовать... и вообще, на примере расскажи, что хочешь добиться, пока что на ум приходит:
<img alt="" src="/images/temp_img_small.png" width="другое" height="другое">

xD, поменяли ссылку на уменьшенную фото! )

Спустя 7 часов, 43 минуты, 10 секунд (23.12.2009 - 01:13) soniclord написал(а):
В общем так: после wyisiwyg-редактора выходит форматированный код, и если вставлять в редакторе картинку, но он автоматически в теге img прописывает width и height исходной картинки.
Мне необходимо чтобы изначально показывался первый абзац этого материала (анонс в правой колоночке), и если там есть картинка, то картинку нужно подгонять под размер колонки. Обрезание абзаца я сделал, с картинкой решил что буду делать thumbnail'ы, но вот теперь осталось только менять пути в картинке и убирать width и height.
Что имеем: поле в БД с тегами - форматированный выход от редактора.

Спустя 45 минут, 55 секунд (23.12.2009 - 01:59) qpayct написал(а):
Средствами пхп. Он для того и придуман :-)
<?php 
if ($page==1) $img="/a/b/image.png";
else $img="/a/b/image_mini.png";
?>

<img src="<?=$img?>" />
:-D

Спустя 40 минут, 57 секунд (23.12.2009 - 02:40) inpost написал(а):
Я скриптом то не пользовался, но ведь в скрипте содержится где-то $src до рисунка, найди её, создай ещё одну переменную, в которой убери последние 4 символа (.png) и допиши: "_mini.png", а потом создай:
$img_mini = "<img src="'.$src."' width='x' heigh='y'>";
Если надо передать между обработчиками, то используй сессию.

Неужели я снова не понял смысла? Вот в чём разница между смертными и профессионалами, они понимают с полуслова, а нам надо расталковывать всё по пунктикам! smile.gif

Спустя 46 минут, 25 секунд (23.12.2009 - 03:26) soniclord написал(а):
ok, попробую еще подробней описать проблему.
Есть wysiwyg-редактор CKEDITOR, если вы имели с ним дело, то видели, чтобы изменить код, надо хорошо покапаться в коде. Конечно я посмотрел исходник, где создается картинка и присваиваются параметры. На мой взгляд проще будет написать скрипт который из конечной переменной (в которой содержится текст с тегами и собственно сама картинка) выделит img с параметрами, заменит src (если возможно, то удалит параметры width и height) на ее уменьшенную копию.

Применение: представьте вы создали в этом редакторе статью с большим фото. Все бы хорошо, но когда будет анонс этой статьи (анонс у меня в правой колонке шаблона, ширина которой 250px, представьте что будет если туда влезет фото 1024*768), но при нажатии на заголовок открывается статья с оригинальным фото. вот...

Спустя 2 часа, 27 минут, 11 секунд (23.12.2009 - 05:53) qpayct написал(а):
Когда руки растут из верхней части туловища, а в голове мозги, а не кисель, как у дятла, все проблемы по колено ;-) но хуже всего даже не это, а когда не ума ни фантазии. В нашей профессии это трагедия. Ну ничего, не отчаивайся ;-) всё приходит с опытом :-D
в пхп есть такая чудо библиотека gd, как раз для таких вот проблем. Пишешь файл, который изменяет параметры картинки на лету и его в виде переменной тыкай в срк=
удачи

Спустя 16 минут, 36 секунд (23.12.2009 - 06:10) soniclord написал(а):
во! ответ что нужно! Спасибо... user posted image
но согласитесь - руки не сразу начинают расти из нужного места...

Спустя 7 часов, 23 минуты, 29 секунд (23.12.2009 - 13:33) Xpund написал(а):
Мож ему <map ... надо?

Спустя 6 часов, 28 минут, 48 секунд (23.12.2009 - 20:02) qpayct написал(а):
смотря у кого laugh.gif вот скажем у курицы они так и не вырастают laugh.gif

Спустя 22 минуты, 9 секунд (23.12.2009 - 20:24) glock18 написал(а):
qpayct
С выражениями аккуратней, ок? wink.gif

Спустя 12 часов, 23 минуты, 32 секунды (24.12.2009 - 08:48) soniclord написал(а):
жаль что по сабжу нет ответов...

Спустя 2 минуты, 52 секунды (24.12.2009 - 08:51) qpayct написал(а):

Спустя 51 минута, 3 секунды (24.12.2009 - 09:42) ApuktaChehov написал(а):
Если все это для какого-то меленького сайта, с небольшой посещаемостью, то все ок. А если для крупного дела, то генерация картинок на лету не пойдет, большая нагрузка на систему.
У тебя размеры картинки все время одинаковы должны быть? Если да, тогда нужно сделать 2 изображения, одно большое, а другое маленькое. А потом выводить маленькое где надо, тут уже об этом говорили.
А если размер картинки может менять и это непредсказуемо. Тогда нужно юзать JS. У него есть возможность изменять размер изображения, на стороне клиента. Но тогда происходит нагрузка на клиентскую систему. Если зайдет какой-нибудь дядя на 800 пне, то но будет очень долго ждать, хотя это его проблемы.
ИМХО, тут нужна золотая середина. Решение за тобой.

Спустя 1 час, 6 минут, 11 секунд (24.12.2009 - 10:48) soniclord написал(а):
Это большой крупный портал, генерация на лету не нужна, я могу создавать тумбы при создании статьи, когда будет загружаться большая картинка, я могу получить ее путь, но опять таки вся проблема (которая и прозвучала вначале) в том что я не знаю как можно в переменной, где находится статья, найти и заменить путь. Скрипт создания тумбов у меня уже есть, подогнанный под мой двиг.
Идея с JS - хороша, попробую ее реализовать, но все же хотелось бы конечно первое реализовать.

P.S. Спасибо за советы!

Спустя 4 минуты, 4 секунды (24.12.2009 - 10:52) ApuktaChehov написал(а):
Вот тебе хорошая идея с JS и DOM.

img_obj = document.getElementById("имя узла");
img_obj.setAttribute("src","путь к изображению");


тут ты получаешь узел страницы(говоря проще это тег <img>), а потом задаеш ему новый атрибует src. У меня хорошо работает =)

Спустя 2 часа, 30 минут, 7 секунд (24.12.2009 - 13:22) soniclord написал(а):
на данный момент написал на JS
function setWidth()
{
var allImg = document.getElementById('right').getElementsByTagName('img');
for (var i=0; i<allImg.length; i++)
{
if (allImg[i].width > 250)
{
allImg[i].style.height = Math.ceil(allImg[i].height*(250/allImg[i].width))+'px';
allImg[i].style.width = '250px';
}
}
}

onload = setWidth;

где document.getElementById('right') - id контейнера, допустим, <div id='right'>

Спустя 2 минуты, 18 секунд (24.12.2009 - 13:24) soniclord написал(а):
Цитата (ApuktaChehov @ 24.12.2009 - 07:52)
Вот тебе хорошая идея с JS и DOM.

Спасибо Вам огромное! :-) буду юзать!

Спустя 4 часа, 48 минут, 47 секунд (24.12.2009 - 18:13) qpayct написал(а):
во избежании вышеописаных "преград" предлагаю при добавлениии новой статьи генерировать thumbnail и сэйвить его в аналогичную папку на сервак(немного фантазии) откуда потом и выгружать, а JS решения не советую поскольку на одноклассниках они мне не всегда к примеру нравится.
З.Ы. поиск ссылки в строке выполняется пхп функуиями....

Спустя 30 минут, 43 секунды (24.12.2009 - 18:44) ApuktaChehov написал(а):
Цитата (qpayct @ 24.12.2009 - 15:13)
JS решения не советую поскольку на одноклассниках они мне не всегда к примеру нравится.

ИМХО нужно знать меру. Пример, который я привел никак не отражается на странице, это всего-лишь метод смены картинки и все.

Спустя 1 час, 39 минут, 32 секунды (24.12.2009 - 20:23) qpayct написал(а):
Цитата (ApuktaChehov @ 24.12.2009 - 17:44)
ИМХО нужно знать меру. Пример, который я привел никак не отражается на странице, это всего-лишь метод смены картинки и все.

не совсем так.
речь ведь идёт о "большом серьёзном проэте", а следовательно ИМХО неразумно загружать с сервера 2мб фотку, чтобы в последствии ресайзить её на стороне клиента до 100кб.
хотя конечно твой пример интересен и полезен, но в данной ситуации на мой взгляд не самый оптимальный.

ссори, перепутал ответы с soniclord, но практически та же проблема остаётся... зачем подгружать обе фото? это не есть разумно cool.gif

Спустя 11 часов, 10 минут, 8 секунд (25.12.2009 - 07:34) soniclord написал(а):
Цитата (qpayct @ 24.12.2009 - 15:13)
во избежании вышеописаных "преград" предлагаю при добавлениии новой статьи генерировать thumbnail и сэйвить его в аналогичную папку на сервак(немного фантазии) откуда потом и выгружать, а JS решения не советую поскольку на одноклассниках они мне не всегда к примеру нравится.
З.Ы. поиск ссылки в строке выполняется пхп функуиями....

знаете, товарищ qpayct, вообще-то у меня вопрос и звучал так: использование регулярных выражений. Ответа на вопрос "как поменять путь к картинке в исходном коду" при помощи php я так и не получил, поэтому от безысходности я и использую JS, за что огромное спасибо товарищу ApuktaChehov. Я же писал уже что создание тумбов я уже реализовал, но вот как заменить все что находится в src я так и не узнал.

Спустя 49 минут, 11 секунд (25.12.2009 - 08:23) qpayct написал(а):
товарищ soniclord, дело твоё личное. просто факт остаётся фактом. ИМХО правильней использовать строковые функции там где можно избежать использования регулярок. простой и дельный совет, а использовать его или нет - дело хозяйское wink.gif

Спустя 8 часов, 35 минут, 22 секунды (25.12.2009 - 16:58) ApuktaChehov написал(а):
soniclord пример который я привел как раз и заменять все что находится в src.

Насколько я понял, тебе нужно что бы сначала появлялась маленькая картинка, а при нажатии большая. И при этом неизвестно точных размеров маленькой, так?

Спустя 15 часов, 57 минут, 17 секунд (26.12.2009 - 08:55) soniclord написал(а):
не совсем так. Представьте новостную статью. Сначала идет большая фото а затем и сам репортаж. На главной странице выводится анонс этой статьи - фото и первый параграф. Так вот, надо чтобы в анонсе выводилась не большое фото, а ее уменьшенная копия. Но вся проблема в том что загрузка изображения происходит с помощью скриптов, к которым я подобраться не могу, я имею только поле в бд, в которой вместе со статьей и имеется src к фото. Мне надо как-то вычленить этот путь и заменить на свой. Вот...
ApuktaChehov - ваш скрипт отлично работает, но происходит загрузка сначала большой картинки а потом скрипт ее уменьшает, это все видно... да и размер тоже оригинальный :-(

Спустя 1 час, 7 минут, 9 секунд (26.12.2009 - 10:03) ApuktaChehov написал(а):
Тогда это сложная задача. Если вы не можете подобраться к скриптам...
А почему не можете то?


>>происходит загрузка сначала большой картинки а потом скрипт ее уменьшает<<

Вы указываете width и height в картинке?

И еще хорошо бы увидеть все это в живую, ссылку можно?

Спустя 3 часа, 41 минута, 27 секунд (26.12.2009 - 13:44) soniclord написал(а):
ссылка
я могу вам кинуть скрипт который отвечает за картинки, но он очень большой :-(

Спустя 1 час, 25 минут, 20 секунд (26.12.2009 - 15:09) ApuktaChehov написал(а):
А что не так?

Спустя 45 минут, 21 секунда (26.12.2009 - 15:55) soniclord написал(а):
а может давайте наедине поговорим? моя аська в профиле, постучитесь пожалуйста
Быстрый ответ:

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