Регулировка размеров столбца табл. при выводе картинок

Asar

Новичок
Регулировка размеров столбца табл. при выводе картинок

Ситуация следующая:
выводим из базы по запросу какой то тип товара в виде таблицы (картинка, описание, цена, к примеру).
Если картинок много, а у них есть alt'ы, то браузер иногда не успевает вывести фотки - начинает было показывать альт, но потом сразу картинку на его место. В общем то, это пофигу (глазу не заметно почти), но альт сильно длиннее картинок бывает, а потом размер столбца подгоняется под альт, а не под размер картинки - выходит слишком длинным, даже когда там выводится фота, а не альт уже. Задавал фикс. размеры и проценты для столбца - не помогает. Помогает только фиксированная длина картинки, но они у меня разные.
Как лечить?
 

virakochi

Устал
Можешь для каждой картинки сначала подсчитывать ее размеры, а потом выводить тег <img> с уже известными размерами.

Manual: getimagesize
 

Asar

Новичок
А попроще чиво-нибудь, для ламаков типа, а?..
Кроме того, там тормозов не будет по этому поводу, а то бывает и сотни нужно на одну стр. вывести...
 

virakochi

Устал
А что в этом сложного?

-~{}~ 16.06.04 15:25:

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

Asar

Новичок
Да это согласен, но нужно для случая с наманным инетом...
Люди, как вывести просто ширину в переменную какую, подскажите начинающему...?
Т.е. обязательно ли
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
Или можно как то отдельно только $width..?
 

virakochi

Устал
А как ты собираешься выводить размер картинки, не узнав его перед этим?
 

Asar

Новичок
Так вон он гетимаж - его и узнаю. У меня в примере есть только как все параметры по переменным распихать. А я хочу тока ширину.
Сорри, конечно, мы сами дезигнеры, программируем постольку-поскольку...
 

virakochi

Устал
Вот после
PHP:
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
у тебя в $width как раз ширина и лежит.
А отдельно - нет вроде такого. И тем более эта функция не обрабатывает все изображение, а только метаинформацию
 

Asar

Новичок
Т.е. все равно придется брать всю инфу... Так тормозов то это не вызовет лишних, если пара сотен картинок?
 

Asar

Новичок
А я щас попробую...

-~{}~ 16.06.04 17:04:

Мдя... Попробовал...
<?php list($width, $height, $type, $attr) = getimagesize("1052"); ?>
<?php echo $width; ?>
Ну здесь то что неправильно может быть...

Нифига он на это не выдает...
 

virakochi

Устал
Даже если у тебя есть изображение с названием 1052, этот тест совсем не то, что ты хочешь сделать.
 

Фанат

oncle terrible
Команда форума
Asar
а такой файл существует? 1052?
и он в том же каталоге, что и скрипт? все 200 штук?
 

Asar

Новичок
У меня есть такое изображение. Также пробовал ставить расширение и в строки, и файлу жпег. Все то же.
Конечно, не совсем. Но если даже это не работает, то дальше пока рано идти.

-~{}~ 16.06.04 17:12:

Да путь я верно прописал... Просто здесь для краткости сменил.
 

Фанат

oncle terrible
Команда форума
Просто здесь для краткости сменил.
- Ви слыхали? К Одессу приедет итальянская опера!
- Та, ничего интересного. Они фальшиаят, картавят, шепелявят.
- Ви были в Милане???
- нет, мне Рабинович по телефону напел.

-~{}~ 16.06.04 17:16:

скажи, а дизайн клиенту ты тоже так показываешь?
"вот здесь - кружочек, вот здесь - цветуечек, а тут - флешка"
да?
для краткости?
 

virakochi

Устал
Провел тест за тебя.
298 изображений.
Среднее время выполнения - 0.07 (чтение каталога + getimagesize для каждой картинки).

Среднее время выполнения на моем локалхосте 0.05 - 0.2
Выводы сам делай.
 

Asar

Новичок
То virakochi:
А пару строк не кинешь сюды - я б сравнил, да уяснил, что у меня неверно...
 

virakochi

Устал
PHP:
$time_before =  microtime(1);
if ($handle = opendir('1/')) {
    while (false !== ($file = readdir($handle)) ) { 
		if ($file != '.' && $file != '..'){
        $size = getimagesize("1/".$file);
		echo $size[0]."<br>";
		}
    }
   

    closedir($handle); 
}

get_execution_time();

function get_execution_time(){
	global $time_before;
	$time_end = microtime(1);
	$time_elapsed = $time_end - $time_before;
	echo "<h2>&#194;&#240;&#229;&#236;&#255; &#226;&#251;&#239;&#238;&#235;&#237;&#229;&#237;&#232;&#255;: ".$time_elapsed."</h2>";
}
PS. Гуру могут сколько угодно ругать мой способ подсчета времени, но взят он с этого форума.
 
Сверху