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 :: getimagesize не понимает имена с пробелами

 PHP.SU

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


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

> Без описания
Telnet
Отправлено: 15 Июня, 2011 - 18:41:04
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


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




PHP:
скопировать код в буфер обмена
  1. $imagename='http://localhost/joomla/test/index.php?option=com_htmlmapgenerator&controller=showmap&task=createmap&imagename=balloon 20 uid 201111211.gif';
  2.  
  3. $sizePic=getimagesize($imagename);
  4.  
  5. $w_src = $sizePic[0];
  6. $h_src = $sizePic[1];
  7.  
  8. echo 'ширина - '.$w_src;
  9. echo '</br>';
  10. echo 'высота - '. $h_src;

Если в имени файла переданного функции getimagesize встречаются пробелы(balloon 20 uid 201111211.gif) то функция ни чего не видит, если имя такое
http://localhost/joomla/test/ind[dot][dot][dot]magename=jpg[dot]jpg
то все нормально
Если использую urlencode то и без пробелов ни чего не выводит.

Как сделать так, что я мог получить размер изобрежения.
 
 Top
Мелкий Супермодератор
Отправлено: 15 Июня, 2011 - 18:46:11
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Как используете urlencode?


-----
PostgreSQL DBA
 
 Top
Telnet
Отправлено: 15 Июня, 2011 - 19:54:23
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


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




$sizePic=getimagesize(urlencode($this->imagename));

$this->imagename получаем из вида но он передается нормально, а вот getimagesize мне нужно что б узнать ширину и высоту картинки
 
 Top
Champion Супермодератор
Отправлено: 15 Июня, 2011 - 20:58:01
Post Id



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


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


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




а если экранировать?
(Добавление)
кстати, вы так используете urlencode, что он енкодит и двоеточие и слеши в адресе. Наверное, вам этого не очень хочется, правда ведь?
 
 Top
movEAX
Отправлено: 15 Июня, 2011 - 20:59:27
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


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




а если ' ' заменить на '+' ?


-----
армия.. самое убогое место
 
 Top
Telnet
Отправлено: 15 Июня, 2011 - 21:18:25
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


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




А как экранировать
перед каждым пробелом ставить / слеш?

А заменять на +, разве можно попробую отпишусь.
 
 Top
Мелкий Супермодератор
Отправлено: 15 Июня, 2011 - 21:31:37
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Champion пишет:
кстати, вы так используете urlencode, что он енкодит и двоеточие и слеши в адресе. Наверное, вам этого не очень хочется, правда ведь?

Я именно про то и подумал, да.

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


-----
PostgreSQL DBA
 
 Top
Telnet
Отправлено: 15 Июня, 2011 - 21:58:29
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


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




А можно поподробней что значит "аргумент параметра imagename"
Если не трудно пример на PHP, как нужно.
 
 Top
Мелкий Супермодератор
Отправлено: 15 Июня, 2011 - 22:14:01
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




PHP:
скопировать код в буфер обмена
  1. $imagename='http://localhost/joomla/test/index.php?option=com_htmlmapgenerator&controller=showmap&task=createmap&imagename='.urlencode('balloon 20 uid 201111211.gif');


-----
PostgreSQL DBA
 
 Top
Telnet
Отправлено: 16 Июня, 2011 - 09:35:30
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


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




<img src="http://localhost/joomla/test/upload/admin/balloon+uid+1106706.gif" title="картинка http://localhost/joomla/test/upl[dot][dot][dot]+uid+1106706[dot]gif " alt="картинка http://localhost/joomla/test/upload/admin/balloon+uid+1106706.gif" height="" width="">

После предложенных вами манипуляций src картинки теперь выглядит вот так, и если раньше все браузеры хоть видели файл картинки и отображали его но не выставляли высоту и ширину, кроме IE он технично ставил изображению 1 px высоты и ширины.
То теперь только опера отрендерила картинку, а все остальные не справились.
 
 Top
Viper
Отправлено: 16 Июня, 2011 - 11:27:05
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




Telnet ну так надо ж кодировать спецсимволы. + это результат urlencode. Соответственно ссылку нужно пропускать через urldecode.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Opo6ac
Отправлено: 16 Июня, 2011 - 14:34:12
Post Id


Новичок


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


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




А вы уверены, что в файловой системе вообще существует такой файл?

balloon 20 uid 201111211.gif - да
balloon+20+uid+201111211.gif - нет
 
 Top
movEAX
Отправлено: 16 Июня, 2011 - 15:36:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


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




Ну попробуйте вместо + - %20 (код пробельного символа).
А вообще пробелы в данном случае зло! Используйте нижнее подчеркивание.


-----
армия.. самое убогое место
 
 Top
Telnet
Отправлено: 16 Июня, 2011 - 17:30:24
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


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




Посмотрел что когда вот так представлен scr всегда работает getimagesize
http://localhost/joomla/test/upl[dot][dot][dot]id%201106706[dot]gif

встроенной функции для перекодирования пробелов в %20, я так и не нашел, и решил просто менять пробелы на %20
PHP:
скопировать код в буфер обмена
  1. $this->imagename='http://localhost/joomla/test/upload/admin/'.str_replace ( ' ','%20', $imagename )


и все работает.
 
 Top
movEAX
Отправлено: 17 Июня, 2011 - 16:43:31
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


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




Telnet пишет:

и все работает.

Ну и ладушки ) А функция называлась rawurlencode


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB