未定义索引:PHP中文件夹的扩展

未定义索引:PHP中文件夹的扩展,php,undefined,Php,Undefined,我想有一个脚本,它可以将我所有的图像转换成缩略图,并将这些新缩略图保存在一个新文件夹中。 我很幸运地发现了一个代码,它从 唯一的问题是,如果在代码末尾定义的uploads文件夹中有一个文件夹,那么我会得到通知:Undefined index:extension。 代码没有被卡住,我仍然可以看到我的缩略图,但是错误消息很烦人 我试图加入一个isset函数,但做了一些错误的事情,因为我仍然无法阻止脚本对文件夹执行操作。代码对任何其他文件的反应都不类似,因此似乎是文件夹名称中缺少扩展名而困扰代码 我

我想有一个脚本,它可以将我所有的图像转换成缩略图,并将这些新缩略图保存在一个新文件夹中。 我很幸运地发现了一个代码,它从

唯一的问题是,如果在代码末尾定义的uploads文件夹中有一个文件夹,那么我会得到通知:Undefined index:extension。 代码没有被卡住,我仍然可以看到我的缩略图,但是错误消息很烦人

我试图加入一个isset函数,但做了一些错误的事情,因为我仍然无法阻止脚本对文件夹执行操作。代码对任何其他文件的反应都不类似,因此似乎是文件夹名称中缺少扩展名而困扰代码

我可以轻松地从uploads文件夹中删除任何文件夹,并将缩略图的路径放在其他地方,但我也希望它能够正常工作,而不会出现错误消息,以防我碰巧在这些图像文件夹中有文件夹

// parse path for the extension
$info = pathinfo($pathToImages . $fname);
// continue only if this is a JPEG image    
//print_r($info);   
if ( strtolower($info['extension']) == 'jpg' ) { // reacts on the folder with no extension name and gives an error

  echo "Creating thumbnail for {$fname} <br />";      

  // load image and get image size
  $img = imagecreatefromjpeg( "{$pathToImages}{$fname}" );
  $width = imagesx( $img );
  $height = imagesy( $img );

  // calculate thumbnail size
  $new_width = $thumbWidth;
  $new_height = floor( $height * ( $thumbWidth / $width ) );

  // create a new temporary image
  $tmp_img = imagecreatetruecolor( $new_width, $new_height );

  // copy and resize old image into new image 
  imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height );

  // save thumbnail into a file
  imagejpeg( $tmp_img, "{$pathToThumbs}{$fname}" );
}
}

上面链接中的完整代码。

解释:

注:

如果路径没有扩展名,则不会创建任何扩展元素 返回

因此,为了避免出现这种情况,您只需在尝试使用该值之前检查该值是否可用:

if( isset($info['extension']) AND strtolower($info['extension']) == 'jpg'){
    //do sutff
}
或者代替isset。。。您可以使用array\u keys\u exists'extension',$info。

print\r$info在收到通知时返回什么内容。添加isset$info['extension']会阻止通知。文档说:如果路径没有扩展,则不会返回任何扩展元素