如何在php中使用glob()仅返回文件名

2022-08-30 14:21:17

我怎么能只返回文件名。打印绝对路径名$image?

<?php
$directory = Yii::getPathOfAlias('webroot').'/uploads/';
$images = glob($directory . "*.{jpg,JPG,jpeg,JPEG,png,PNG}", GLOB_BRACE);
 foreach($images as $image)
   echo $image
?>

我想要的只是特定目录中的文件名,而不是绝对名称。


答案 1

使用 php 的基名

返回路径的尾随名称组件

<?php
$directory = Yii::getPathOfAlias('webroot').'/uploads/';
$images = glob($directory . "*.{jpg,JPG,jpeg,JPEG,png,PNG}", GLOB_BRACE);
 foreach($images as $image)
   echo basename($image);
?>

答案 2

而不是 ,您可以在 glob 之前进行 chdir,因此结果不包含路径,例如:basename

<?php
$directory = Yii::getPathOfAlias('webroot').'/uploads/';
chdir($directory); // probably add some error handling around this
$images = glob("*.{jpg,JPG,jpeg,JPEG,png,PNG}", GLOB_BRACE);
 foreach($images as $image)
   echo $image;
?>

这可能更快一些,但除非您有大量的文件,否则不会有任何显着的区别


推荐