PHP getimagesize с амперсандом в строке создает ошибки - PullRequest
0 голосов
/ 12 марта 2010

Я использую функцию getimagesize в PHP, и строка пути содержит амперсанд, что в противном случае хорошо. Страница дает мне ошибки, когда вызывается getimagesize (). Глядя на исходный код, я вижу, что амперсанд пропускается как &, а не просто & Я предполагаю, что это вызывает ошибки, потому что PHP не нужно преобразовывать его в тег HTML, чтобы найти путь, верно?

Вот ошибка:

Предупреждение: getimagesize (image.php? Name = username & pic = picture) [function.getimagesize]: не удалось открыть поток: нет такого файла или каталога

1 Ответ

1 голос
/ 12 марта 2010

Если вы хотите, чтобы getimagesize извлекал изображение с удаленного сервера, отправив HTTP-запрос и загрузив его, вам необходимо использовать абсолютный URL (начиная с http://domainname.ext/...)


Например, эта часть кода:

$url = 'http://static.php.net/www.php.net/images/php.gif?test=glop&blah=huhu';
$data = getimagesize($url);
var_dump($data);

Дает мне:

array
  0 => int 120
  1 => int 67
  2 => int 1
  3 => string 'width="120" height="67"' (length=23)
  'bits' => int 7
  'channels' => int 3
  'mime' => string 'image/gif' (length=9)


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

И, в вашем случае, я сомневаюсь, что у вас есть физический файл с именем 'image.php?name=username&pic=picture'.

...