Intereting Posts
Обходной путь вместо использования websockets / ajax-long-pulling Ошибка анализа: ошибка синтаксиса, неожиданный T_STRING 59 глобальная переменная, не определяемая в тарабарщине, включает Отменить группу переменных Каждый пользователь может редактировать только одну страницу-wordpress Невозможно установить флажок Laravel, выбранный в режиме редактирования Создание алгоритма сворачивания баннеров для поворота рекламы Ошибка move_uploaded_file () в окнах с помощью wamp Вопрос об анонимных методах как членов класса сгладить многомерный массив в текст csv с помощью PHP Вставить изображение в Mail без использования графического файла изображений Несколько файлов cookie с одинаковым именем Каким образом лучше всего использовать хэш-пароль? .htaccess и изменение php-запросов на чистый URL-адрес Как я могу обмениваться контентом со своей внутренней страницы на странице Facebook?

Как вернуть только имя файла с помощью glob () в php

Как я могу просто вернуть имя файла. $ image печатает абсолютное имя пути?

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

Все, что я хочу, это имя файла в конкретном каталоге, а не абсолютное имя.

Solutions Collecting From Web of "Как вернуть только имя файла с помощью glob () в php"

Вместо basename вы можете использовать chdir перед glob, поэтому результаты не содержат пути, например:

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

Это, вероятно, немного быстрее, но не будет иметь существенных отличий, если у вас нет тонны файлов

Использовать базовое имя 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); ?> 

Использовать basename()

 echo basename($image); 

Вы также можете удалить расширение следующим образом:

 echo basename($image, '.php'); 

Один лайнер:

 $images = array_map('basename', glob($directory . "*.{jpg,JPG,jpeg,JPEG,png,PNG}", GLOB_BRACE)); 

Взгляните на pathinfo

http://php.net/manual/en/function.pathinfo.php

Довольно полезная функция

Пример: извлечение только имен файлов и преобразование в новый массив расширений ширины имен файлов.

 $dir = get_stylesheet_directory();//some dir - example of getting full path dir in wordpress $filesPath = array_filter(glob($dir . '/images/*.*'), 'is_file'); $files = array(); foreach ($filesPath as $file) { array_push($files, basename($file)); }