您好我正在寻找一个解决方案,优先于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 加载常规文件。
答案 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;
}
}
}