|
|
|
| Добрый день, уважаемые форумчане!
Необходимо сделать инклуд на файл в директории выше текущей, если он существует. Пытаюсь реализовать с помощью регулярных выражений, прошу помочь с синтаксисом или реализацией:
$path = $_SERVER['DOCUMENT_ROOT'];
$var = "/"."\\S+";
if(file_exists($path."/file.php"))
{
@include_once($path."/file.php");
}
else if(file_exists($path.$var."/file.php"))
{
@include_once($path.$var."/file.php");
}
else
{
print("file not found.");
exit;
}
|
| |
|
|
|
|
|
|
|
для: julpierto
(21.02.2013 в 13:41)
| | А почему не воспользоваться относительными путями, а не абсолютными?
<?php
if(file_exists("../file.php"))
@include_once("../file.php");
elseif(file_exists("../somedir/file.php"))
@include_once("../somedir/file.php");
else
exit("file not found.");
|
| |
|
|
|
|
|
|
|
для: Sfinks
(21.02.2013 в 15:58)
| | Sfinks, в принципе без разницы, но вместо
@include_once("../somedir/file.php");
|
должна быть любая директория | |
|
|
|
|
|
|
|
для: julpierto
(21.02.2013 в 22:58)
| | А, то есть вы хотите произвести поиск по всем директориям?
Ну тут никакие РВ не поддерживаются. Возможно только циклом перебрать все директории.
Примерно так:
<?php
if(file_exists("../file.php"))
@include_once("../file.php");
else{
$found = false;
$dir = opendir('..');
while ( ($file = readdir($dir)) !== false )
if( $file!=='.' && $file!=='..' && is_dir($file) && file_exists("../{$file}/file.php") ){
$found = true;
closedir($dir);
@include "../{$file}/file.php";
break;
}
}
if( !$found ) exit("file not found.");
?>
|
| |
|
|
|
|
|
|
|
для: Sfinks
(22.02.2013 в 09:40)
| | Только через цикл, понял Вас - спасибо огромное! | |
|
|
|