我在页面目录中有多个文件。
除了我输入的内容之外,所有页面都是相同的 租赁检查。
bedroom1.php bedroom2.php bedroom3.php
但要让他们使用正确的标题我需要他们看到 根据自己的文件名更正标题。
bedroom1.php包含header1.php
bedroom2.php包含header2.php
bedroom3.php包含header3.php
.......
bedroom10.php包含header10.php
我可以很容易地获得文件名。
我试图使用preg_match(也许应该使用别的东西?) 但是没有在日志中出现任何错误,所以我不确定 我错过了什么,对文件比较不够了解 我输了。
编辑:添加:忘记添加,此代码在bedroom1.php等...
提前致谢
<?php
$file = $_SERVER["SCRIPT_NAME"];
$break = Explode('/', $file);
$pfile = $break[count($break) - 1];
if (preg_match('/bedroom . $i .php/', $pfile, $i)) {
$number = $i[1];
foreach(array('header') as $base) {
include_once "$base$number.php";
}
}
?>
答案 0 :(得分:1)
应该是:
if (preg_match('/bedroom(\d+)\.php/', $pfile, $i)) {
您需要使用\d+
来匹配数字,并将其放在括号内以使其成为捕获组,以便您可以使用$i[1]
访问它。
答案 1 :(得分:0)
试试这个:
$file = basename($_SERVER['SCRIPT_NAME'], '.php');
$base = 'header';
$parts = array();
if (preg_match('/bedroom(\d+)/', $file, $parts)) {
include_once $base . $parts[1] . '.php';
} else {
// the file doesn't follow the bedroom{number}.php structure
}
祝你好运!
答案 2 :(得分:0)
$file = $_SERVER["SCRIPT_NAME"];
$baseName=basename($file);
$base="header";
preg_match_all('/\d+/', $baseName, $baseNameInt);
$basNameFile=$baseNameInt[0][0];
if(file_exists("$base$basNameFile.php")){
include_once("$base$basNameFile.php");
} else {
// ...
}
答案 3 :(得分:0)
使用此
basename($_SERVER['SCRIPT_NAME'])
你得到了剧本名称
答案 4 :(得分:0)
不确定您的数组包含哪些内容需要foreach
(如果这只是示例代码),但为什么不呢:
$array = array('header');
$suffix = str_replace($array, '', basename(__FILE__));
foreach($array as $base) {
if(file_exist("$base$suffix")) {
include_once("$base$suffix");
}
}
如果阵列中唯一的东西是header
,那么就完全放弃循环。