Задача:
Не создавая миниатюр вывести изображение в уменьшенном варианте (изменить значение атрибутов width и height тега img)
Скрипт:
function chenge_width($mch)
{
$mch[0] = str_replace($mch[1],'20', $mch[0]);
return $mch[0];
}
function chenge_height($mch)
{
$mch[0] = str_replace($mch[1],'20', $mch[0]);
return $mch[0];
}
function get_tag_img($match)
{
preg_replace_callback('#width="*(.+?)"#si', 'chenge_width', $match[0]);
preg_replace_callback('#height="*(.+?)"#si', 'chenge_height', $match[0]);
return $match[0];
}
$text = '<p>
<img class="super_pic" width="300" height="70" alt="" src="/fa2.gif" title="">
вот такая тестовая запись вот такая тестовая запись</p>';
echo preg_replace_callback('#\<img (.*?)\>#si', 'get_tag_img', $text);
Подскажите где я ошибаюсь?
Спустя 16 минут, 12 секунд (13.07.2012 - 13:01) bodja написал(а):
Ошиблись в выборе языка на JS это решается в три строчки.
var img=document.getElementsByClassName('super_pic');
img[0].style.width='300px';
img[0].style.height='70px';
Спустя 4 минуты, 39 секунд (13.07.2012 - 13:06) BadJack написал(а):
Спасибо за быстрый ответ
А если имя класса динамическое и картинок штук 10 на страницу (в первоисточнике class="alignnone size-full image-8")?
А если имя класса динамическое и картинок штук 10 на страницу (в первоисточнике class="alignnone size-full image-8")?
Спустя 7 минут, 31 секунда (13.07.2012 - 13:14) bodja написал(а):
document.getElementsByClassName('super_pic')
вам вернул массив картинок.
img[0] это была первая картика
Есть другие селектора например
getElementsByTagName('img')
Найти нужный элемент по тегу,ид или классу не является проблемой ,было бы желание.
вам вернул массив картинок.
img[0] это была первая картика
Есть другие селектора например
getElementsByTagName('img')
Найти нужный элемент по тегу,ид или классу не является проблемой ,было бы желание.
Спустя 26 минут, 34 секунды (13.07.2012 - 13:40) BadJack написал(а):
Так уж вышло, что я с js дружен гораздо меньше, чем с PHP
Опять же вариант php мне нравится тем, что я могу перед выводом изувечить картинку, не задумываясь где она в списке элементов и как ее звать.
Я знаю где генерируется текст перед выводом на экран и просто хочу "исправить имеющиеся досадные недоразумения".
Вы меня натолкнули на мысль: исправить имя класса, а габариты задать через css возможно это лучший вариант
Опять же вариант php мне нравится тем, что я могу перед выводом изувечить картинку, не задумываясь где она в списке элементов и как ее звать.
Я знаю где генерируется текст перед выводом на экран и просто хочу "исправить имеющиеся досадные недоразумения".
Вы меня натолкнули на мысль: исправить имя класса, а габариты задать через css возможно это лучший вариант
Спустя 1 час, 47 минут, 53 секунды (13.07.2012 - 15:28) BadJack написал(а):
осознал свою ошибку :D
вот правильная функция:
вот правильная функция:
function get_tag_img($match)
{
$match[0] = preg_replace_callback('#height="*(.+?)"#si', 'chenge_height', $match[0]);
$match[0] = preg_replace_callback('#width="*(.+?)"#si', 'chenge_width', $match[0]);
return $match[0];
}