Sunday, January 9, 2022

[FIXED] How to return just file name using glob() in php

Issue

How can I just return the file name. $image is printing absolute path name?

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

All I want is the file name in the specific directory not the absolute name.


Solution

Instead of basename, you could chdir before you glob, so the results do not contain the path, e.g.:

<?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;
?>

This is probably a little faster, but won't make any significant difference unless you have tons of files



Answered By - ernie

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.