2014-11-27 5 views
-1

Это моя структура каталогов:Как правильно использовать include()?

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, браузер sh ow URL1.txt. Почему он не показывает URL2.txt. Как это исправить? Спасибо !

+1

Поскольку сценарий 'file.php' запускается на выполнение от места' all.php' так в этой папке только 'URL1.php' найден! – Rizier123

+0

Попробуйте этот 'glob (" SubDirectory1/* ");' –

+0

@ Indrasinh Bihola, Привет, Есть ли способ добавить SubDirectory автоматически? Потому что у меня много подкаталогов, поэтому трудно поменять один на один. –

ответ

0

Рабочий каталог установлен в основное место расположения сценария. попробуйте положить полный путь местоположения вы хотите найти в:

$filename = glob(__DIR__ . DIRECTORY_SEPARATOR . 'URL*'); 

__DIR__ является текущим каталогом файлов (с PHP 5.3, для версии PHP ниже использования dirname(__FILE__)).

http://php.net/manual/en/language.constants.predefined.php

0

Просто поместите эту функцию в 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().

Смежные вопросы