Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: IMG SRC в html-файле. Как изменить Width и убрать Height?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
LShark
Отправлено: 01 Декабря, 2012 - 21:05:55
Post Id



Частый гость


Покинул форум
Сообщений всего: 240
Дата рег-ции: Нояб. 2012  


Помог: 1 раз(а)




Есть разные, загружаемые на сайт через форму HTML документы.

Во многих есть картинки (загружается одновременно).

Естественно, ссылка на картинки идет через
<img src="путь до картинки" width=xxx height=xxx>
или
<img width=xxx height=xxx src="путь до картинки">

Причем размеры "ххх" могут быть как просто, так и в кавычках или процентах (width=300, width="300" или width=70%) и естественно, совершенно разные.

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

Как удалить все теги размеров, если ширина больше 700 и выставить тег "width=700" ?

т.е.

если указанный width <700 - ничего не делаем, если больше 700 - выставляем жестко 700.

Увы, размеры самого файла-картинки менять нельзя (а то бы просто размеры порезал и теги удалил).

Заранее спасибо.

(Отредактировано автором: 01 Декабря, 2012 - 21:14:08)



-----
Истина прежде всего в том, что...
 
 Top
LShark
Отправлено: 02 Декабря, 2012 - 19:14:31
Post Id



Частый гость


Покинул форум
Сообщений всего: 240
Дата рег-ции: Нояб. 2012  


Помог: 1 раз(а)




Учитывая, что что то все молчат - уточню и упрощу задачу.

Как выявить все сочетания width=(что угодно до пробела или до закрывающего >) (например - 'width=765 ' или 'width="598" ' или 'width=450>' )
Желательно, чтобы значение width я мог бы проверить и при превышении 700 пикселов - установить на 700.

И как просто удалить ВСЕ теги height с аналогичным условием (т.е. этот тег вообще удалить, пусть картинка пропорционально меняется в зависимости от Width)

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


-----
Истина прежде всего в том, что...
 
 Top
KingStar
Отправлено: 02 Декабря, 2012 - 19:49:21
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




в css

CODE (html):
скопировать код в буфер обмена
  1. img
  2. {
  3.      max-width: 700px;
  4. }


-----
То что программа работает, не означает что она написана правильно!
 
 Top
NoPaper
Отправлено: 02 Декабря, 2012 - 20:17:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 315
Дата рег-ции: Янв. 2012  
Откуда: Минск


Помог: 9 раз(а)




или через php
PHP:
скопировать код в буфер обмена
  1. $data = getimagesize('image.png');
  2. $width = $data[0];
  3. $height = $data[1];

(Отредактировано автором: 02 Декабря, 2012 - 20:19:12)

 
 Top
LIME
Отправлено: 02 Декабря, 2012 - 22:31:33
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




img {
max-width: 700px !important;
}
 
 Top
KingStar
Отправлено: 03 Декабря, 2012 - 08:56:22
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




LIME если мне память не изменяет - приоритетной стили, а у него атрибутом указан, хотя... не помешает Подмигивание


-----
То что программа работает, не означает что она написана правильно!
 
 Top
isvetlichniy
Отправлено: 03 Декабря, 2012 - 09:31:14
Post Id



Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Дек. 2012  
Откуда: Украина


Помог: 0 раз(а)




Цитата:
Желательно, чтобы значение width я мог бы проверить и при превышении 700 пикселов - установить на 700.

не нужно ничего проверять.
вас элементарно спасет css

напишите класс для картинок ну или установите стиль для всех картинок на странице
CODE (htmlphp):
скопировать код в буфер обмена
  1. img {
  2.  max-width: 700px;
  3.  }


не будет работать в IE6, но я думаю сегодня это уже не актуально
 
 Top
KingStar
Отправлено: 03 Декабря, 2012 - 10:36:15
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




isvetlichniy Радость Радость Радость вообще-то уже ответ дали, зачем повторятся Хм


-----
То что программа работает, не означает что она написана правильно!
 
 Top
isvetlichniy
Отправлено: 03 Декабря, 2012 - 10:40:31
Post Id



Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Дек. 2012  
Откуда: Украина


Помог: 0 раз(а)




KingStar,
за: 2
против: 0
воздержались: 0

Улыбка
 
 Top
LShark
Отправлено: 05 Декабря, 2012 - 20:37:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 240
Дата рег-ции: Нояб. 2012  


Помог: 1 раз(а)




Спасибо, братья.
Что-то я действительно прозевал возможность заCSSить это...
Ща попробую и отпишусь, если что...
(Добавление)
Хм... результат не самый лучший, так как ШИРИНА то выставляется, но ВЫСОТА остается прежней...

Хотя кто мне мешает зарубить тег Height везде прегреплейсом?


-----
Истина прежде всего в том, что...
 
 Top
isvetlichniy
Отправлено: 05 Декабря, 2012 - 20:43:19
Post Id



Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Дек. 2012  
Откуда: Украина


Помог: 0 раз(а)




пробуй вот такую комбинацию (высоту свою поставь)

CODE (htmlphp):
скопировать код в буфер обмена
  1. img {
  2. max-width: 700px;
  3. max-height: 300px;
  4.  }

(Отредактировано автором: 05 Декабря, 2012 - 20:43:58)

 
 Top
LShark
Отправлено: 05 Декабря, 2012 - 21:07:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 240
Дата рег-ции: Нояб. 2012  


Помог: 1 раз(а)




isvetlichniy пишет:
пробуй вот такую комбинацию (высоту свою поставь)

Увы, необходимо, чтобы пропорции картинок были сохранены. Т.е. если картинка будет 300х9000, то высота в 9000 - нормально.

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

Подскажите регулярное выражение для прег-реплейса, удаляющее следующие варианты тегов height - болдом то, что наду удалить:
height="ххх" src=путь к файлу (ххх - цифры)
height=ххх src=путь к файлу
src=путь к файлу height="ххх">
src=путь к файлу height=ххх>

Упс, забыл еще 2 варианта:
height="ххх"
src=путь к файлу (т.е. в 2 строки, после " нет пробела и перед src нет пробела)
height=ххх
src=путь к файлу (аналогично - 2 строки)

Пытался через
height=.*?( >)
но тогда кастрирует все до следующего ">", т.е. первые 2 варианта не срабатывают.
(Добавление)
Правильно ли получится:
1 чистка:
height=.*?[(\r\n) ] - замена на '' (убираются варианты, когда после тега height идет перенос строки или пробел
2 чистка:
height=.*?> - заменяем на > (убирается тег height, закрывающий картинки)

Понимаю, что коряво, но на больее меня пока не хватило.
(Добавление)
Ну и еще прикол - тупой осел такой тупой, мля...
IE8 - да, по стилям обрезает размер картинки по ширине, но СТРАНИЦУ отображает, как будто ширина все еще офигенная (т.е. тупо слева остается широченное поле).

Ну и он единственный уроде, который тег height="" воспринимает как height="1", а не как отсутствие тега...

(Отредактировано автором: 05 Декабря, 2012 - 21:18:33)



-----
Истина прежде всего в том, что...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB