0

PHPでgetimagesize関数を使用していますが、パス文字列にアンパサンドが含まれていますが、それ以外の場合は問題ありません。このページでは、getimagesize()が呼び出されたときにエラーが発生します。ただし、ソースコードを見ると、アンパサンドが単なる&ではなく&として渡されていることがわかります。パスを見つけるためにPHPがhtmlタグに変換する必要がないため、これがエラーの原因になっていると思います。

エラーは次のとおりです。

警告:getimagesize(image.php?name = username&pic = picture)[function.getimagesize]:ストリームを開くことができませんでした:そのようなファイルまたはディレクトリはありません

4

1 に答える 1

1

HTTP 要求を送信してダウンロードすることにより、getimagesize でリモート サーバーから画像をフェッチする場合は、絶対 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'

于 2010-03-12T05:29:43.160 に答える