Как добавить атрибуты к тегу img?

12
T.R.O.N
На сайте с 18.05.2004
Offline
314
#11
MrBernz:
вся вата именно из-за альтов и тайтла, визивик не позволяет добавлять эти атрибуты, так бы всё проще было..

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

Очень искренний совет, решайте проблему на уровне именно JS.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
[Удален]
#12
T.R.O.N:
он ведь в любом случае на JS

точно на js.. скрипт уже дорабатывался, в оригинале добавление изображения происходит путём ввода урла картинки, сейчас вставка происходит так: выделить картинку -> установил курсор в то место куда нужно вставлять картинку -> нажать на пиктограмму вставки картинки.. пользователю уже легче..

..странность одну у оригинального скрипта визивика заметил: в опере и файрфоксе при нажатии на пиктограмму появляется окошко с полем только для урла.. а в ie появляется окошко с полным набором атрибутов: здесь тебе и альтернативный текст и выравнивание.. Почему так?

Спасибо Вам за советы, T.R.O.N. На js уже пробовал, пока тоже 0... не силён я пока в этом просто, поэтому и маюсь...

Сейчас ещё в php попробую вариант Tempter'a и, скорее всего, вернусь к коду визивика... Тогда уже новый топик по нему будет=)

T.R.O.N
На сайте с 18.05.2004
Offline
314
#13
MrBernz:
Почему так?

дорабатывал очень ленивый программер, который незахотел сделать мультиброузерность...

[Удален]
#14

Возвращаюсь в тему..

..попробовал развить подсказку поста Tempter'а.. вот к чему я прихожу в итоге:

..на входе в обработчик я имею переменную $newbody, которая содержит в себе текст поста с картинками. Далее я выполняю следующие преобразования:

$text = $newbody;

$result = mysql_query('SELECT pict, descr FROM album WHERE 1');
while ($row = mysql_fetch_array($res))
{
$words = '<IMG src="http://teneta.su/'.$row['pict'].'">';
$replace = '<img src="'.$row['pict'].'" title="'.$row['descr'].'" alt="'.$row['descr'].'">';
$text = str_replace($words, $replace, $text)
}

..в итоге запись в базу:

$sql = "Insert into Blogg (userid,name,message) values ($iduser, '$newheader','$text')";

..любой из элементов поля $row['pict'] имеет вид: album/some.jpg

поле descr - текстовое описание..

В общем изменений при "обработке" сообщения никаких не происходит..

Я не уверен, что данный метод действенен в данном случае, потому как сомнения возникают по поводу самого преобразования, то есть: как в <IMG src="http://teneta.su/'.$row['pict'].'"> должен подставляться урл именно нужной мне картинки...

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

T.R.O.N
На сайте с 18.05.2004
Offline
314
#15
MrBernz:
Подскажите пожалста, что неверно?

по сути, все врено...

просто когда идет замена таких длинных строк начинают накладываться разные нюансы...

1. сделайте файл с минимумом текста и картинкой. Вместо мускульных запросов подставьте строку для замены. Когда все сработает, вернитесь к мускули и посомтрите, чем сформированнная строка отличается от рабочей....

[Удален]
#16

Да я уже пробовал упрощать до безобразия:


$text = $newbody;
$words = 'стройка';
$replace = 'строительство';
$text = str_replace($words, $replace, $text)

То есть если я в тексте ввожу слово стройка, то оно великолепно заменяется на строительство.. вот так...

..скрипт отказывается работать, по-моему, когда для замены ему предлагаешь текст с тегами, как здесь - <img и тд>.. Кстати, пробовал сохранять очень длииииинный текст и менять там по упрощённой схеме все пробелы на _ - тоже сработало...

T.R.O.N
На сайте с 18.05.2004
Offline
314
#17
MrBernz:
по-моему, когда для замены ему предлагаешь текст с тегами, как здесь - <img и тд

Ему всеравно. Внимательно посмотрите что и как вы используете. Возможно нужно экранировать символы типа / <> и т.д. + еще нужно использовать регистронезависимое сравнение

[Удален]
#18

Видимо, здесь

$words = '<IMG src="http://somesite.su/'.$row['pict'].'">'; 

$replace = '<img src="'.$row['pict'].'" title="'.$row['descr'].'" alt="'.$row['descr'].'">';

только регулярными выражениями остаётся всё писать, только как - понятия не имею..

[Удален]
#19

На данный момент результат такой вот:

// параметры добавления аттрибутов изображениям

$res = mysql_query('SELECT pict, descr FROM album WHERE 1');
while ($row = mysql_fetch_array($res))
{
$pict = $row['pict']; // урл изображения
$descr = $row['descr']; // описание изображения
$words = 'http://site.su//'.$pict; // искомые изображения
$replace = '\/'.$pict.'\" title=\"'.$descr.'\" alt=\"'.$descr; // заменить на..
$text = str_replace($words, $replace, $newbody);
}

Сейчас скрипт атрибуты добавляет, но только к последней картинке, записанной в базе, а именно: если в тексте встречается картинка с последним id, то к ней скрипт добавляет всё что нужно..

Каким образом можно написать условие, чтобы значения подставлялись необходимым изображениям?

MrBernz добавил 16.09.2009 в 14:22

..есть идея по реализации - помогите развить и доделать пожалуйста!..

суть такая: перед вышеприведённым запросом выполнить парсинг поста, а именно значения переменной $newbody и занести в некую переменную урлы (или массивы урлов) картинок, встречающихся в тексте.. а далее в запросе определить значения:

$res = mysql_query('SELECT pict, descr FROM album WHERE pict='.$img.'');

тип того...

вопрос: как можно реализовать данную задрачку?

PS: странно получается.. общаюсь тут сам-на-сам... 🚬

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий