2010-03-12 2 views
0

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

Здесь ошибка:

Warning: getimagesize(image.php?name=username&pic=picture) [function.getimagesize]: failed to open stream: No such file or directory

+2

Пожалуйста, разместите свой код. Похоже, вы передаете недопустимый аргумент для getimagesize. – codaddict

+0

как что? Я бы вставлял его, но он был на моей другой машине. Это просто строка, которая является URL-адресом. $ location = "image.php? Name = username & pic = picture"; $ size = getimagesize ($ location); – RobHardgood

ответ

1

Если вы хотите 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'.

+0

Это не так. У меня такая же проблема, и я использую абсолютный путь. Ошибка показывает следующее: PHP Предупреждение: getimagesize (https://graph.facebook.com/1234/picture?type=normal & access_token = SECRETTOKENSUPERDUPER) [function.getimagesize]: не удалось открыть поток: HTTP-запрос не удался! – eipipuz

+0

Проблема в том, что амперсанд кодируется url до & – eipipuz

Смежные вопросы