如何将文件导入优先于另一个文件

时间:2011-01-08 14:26:31

标签: php function joomla

您好我正在寻找一个解决方案,优先于File-B over File-A。让我解释一下。

我正在运行Joomla,我的模板位于块中,这些块全部导入并加入主index.php文件中。

让我们说我有2个文件夹 FOLDER-A FOLDER-B

FOLDER-A 目录:

head.php
header.php
mainbody.php
footer.php

我使用以下函数将它们转到我的index.php文件:

function getBlock($filename){
require_once(YOURBASEPATH.DS.'FOLDER-A'.DS.$filename.'.php');
}

我把它们称为:

<?php className::getBlock('head') ?>

<?php className::getBlock('header') ?>

<?php className::getBlock('mainbody') ?>

<?php className::getBlock('footer') ?>

现在我想创建一个更改这些核心文件而不会打扰原始文件的选项。

因此,如果想要对主体进行更改,则将文件mainbody.php复制到名为 FOLDER-B 的编辑器中,并将更改合并到那里。

所以我要找的是一个首先检查FOLDER-B的函数,如果存在与 FOLDER-A 中的对应名称相同的文件,那么它必须加载它,否则它应从FOLDER-A 加载常规文件。

2 个答案:

答案 0 :(得分:1)

像:

function getBlock($filename){
  $fileB = YOURBASEPATH.DS.'FOLDER-B'.DS.$filename.'.php';
  if (file_exists($fileB)) {
    require_once($fileB); 
  } else {
    require_once(YOURBASEPATH.DS.'FOLDER-A'.DS.$filename.'.php'); 
  }
} 

答案 1 :(得分:1)

function getBlock($filename){

    $folders = array(
        YOURBASEPATH.DS.'FOLDER-B',
        YOURBASEPATH.DS.'FOLDER-A',
    );

    foreach ($folders as $folder) {
        $file = $folder.DS.$filename.'.php';
        if ( file_exists($file) ) {
            require_once ($file);
            break;
        }
    }

}