Это моя структура каталогов:
Main directory
all.php
file.php
URL1.txt
SubDirectory1
URL2.txt
file.php
файл file.php как это:
$filename = glob("URL*");
echo $filename[0];
файл all.php
<?php
include('./SubDirectory1/file.php');
?>
Проблема в том, когда я запускаю файл all.php, браузер шоу URL1.txt. Почему это не показывает URL2.txt. Как это исправить? Спасибо !
рабочий каталог установлен в основное местоположение скрипта. попробуйте указать полный путь местоположения, в котором вы хотите искать:
$filename = glob(__DIR__ . DIRECTORY_SEPARATOR . 'URL*');
__DIR__
текущая директория файла (начиная с PHP 5.3, для использования более низкой версии php dirname(__FILE__)
).
Просто поместите эту функцию в file.php
, Вы получите массив, который вы можете var_dump()
,
function glob_recursive($pattern) {
$files = glob($pattern);
foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir)
$files = array_merge($files, glob_recursive($dir.'/'.basename($pattern)));
return $files;
}
В вашем all.php
файл вы можете просто сделать это:
print_r(glob_recursive("URL*"));
И вы получите все имена файлов с этим шаблоном! Таким образом, вы можете использовать свой file()
функция