функция GetImageSize и ее параметры

nik0lay

Новичок
функция GetImageSize и ее параметры

почему в строке 1 работа функции getimagesize заканчивается неудачей, хотя в массиве $ex точно содержатся строковые данные? Этот массив $ex заполняется из текстового файла, и если просто писать его содержимое в таг <img>, то всё работает. Но в качестве параметра функции эта строка не подходит... Почему?
PHP:
// $imgsize = GetImageSize($ex[$j][3]);                 // строка 1
$imgsize = GetImageSize("images/pict1.jpg");   // строка 2
print "<img src=' {$ex[$j][3]} ' {$imgsize[3]} >";
 

nik0lay

Новичок
понял, исправляюсь. Вот текст ошибки:
Warning: getimagesize( images/dont_panic_by_ek.jpg ) [function.getimagesize]: failed to open stream: Invalid argument in z:\home\ekiselev.test\www\blogline.php on line 46
 

nik0lay

Новичок
Может быть я непонятно изъяснился, но в случае, когда путь к файлу забит вручную, функция этот файл находит.
В случае, когда эта же строка находится в переменной, он ругается. :( Мне кажется тут какая-то заморочка с типами переменных, если таковые вообще есть в php. Как php объяснить, что в забитой строке вручную и в элементе массива $ex[$j][3] одна и та-же строка???
Характерно, что оператор print содержимое $ex[$j][3] понимает и благополучно выводит его в поток...
 

SiMM

Новичок
Используйте абсолютные пути, а не относительные.
 

nik0lay

Новичок
а почему тогда вот такой код работает без проблем?
PHP:
$myfilename = "images/img.jpg";
$imgsize = GetImageSize($myfilename);
print "<img src=' {$ex[$j][3]} ' {$imgsize[3]} >";
 

Фанат

oncle terrible
Команда форума
SiMM
вроде бы, он бы так и писал, что файл не найден. а не инвалид аргумент.

nik0lay
почему у тебя в коде "images/pict1.jpg", а в сообщении об ошибке images/dont_panic_by_ek.jpg ?
Если так и должно быть, а код это такой специально адаптированный для форума и строки в переменной и в аргументе совпадают, то
1) Никогда так больше, под угрозой бана, не делай.
2) напиши вот этот код
echo md5(имя картинки руками);
echo "<br>";
echo md5($ex[$j][3]));
и если они выведут разные значения, то разбирайся, почему у тебя в переменной лежит не то, что ты думаешь
 

nik0lay

Новичок
большое спасибо Фанату. оказалось что проблема в лишнем пробеле в начале строки... Я это уже давно заметил, но не обратил внимания... теперь всё ок...
 

nik0lay

Новичок
вот код, который исправил проблему:
PHP:
      $ex[$j][3] = ltrim($ex[$j][3]);
      $ex[$j][3] = rtrim($ex[$j][3]);
      $imgsize = GetImageSize($ex[$j][3]);
-~{}~ 09.04.07 18:49:

2 Фанат: насчёт путей вас понял, в целом согласен, буду внимательней)
 
Сверху