Dre*_*rew 5 php dynamic switch-statement
我使用PHP Switch语句来确定我的网站页面.所以这是一个例子:
switch($page) {
case "about":
$title_name = "About Us";
$page_content = "includes/about-us.php";
include("inner.php");
break;
case "services":
$title_name = "Services";
$page_content = "includes/services.php";
include("inner.php");
break;
}
Run Code Online (Sandbox Code Playgroud)
我的文件结构是index.php?page = about,它转换为/ about /使用htaccess.
我想要做的是将所有页面都放在switch语句中并自动获取它并将其放入列表中,这样我就可以自动将其写入我的页脚页面,在那里我将拥有所有链接.
因此,不要手动输入页脚中的所有链接,如:Home | 关于我们| 服务| 常见问题,它会根据我在Switch语句中提供的页面自动提取它.
有没有办法做到这一点?自动添加新页面也很好,它将为新页面添加新案例,并自动在包含文件夹中创建页面.
如果有人能指出我正确的方向,我会非常感激.根据我的理解,我不相信你可以用switch语句来做这件事,我必须以我调用页面的方式重新工作,对吧?
$pages = array('about'=> 'About Us', 'services' => 'Services');
if (array_key_exists($page, $pages)) {
$title_name = $pages[$page];
$page_content = "includes/$page.php";
include('inner.php');
}
Run Code Online (Sandbox Code Playgroud)
对于您的页脚,您可以遍历页面列表.要添加新页面,只需将其添加到阵列并创建相应的文件即可.
但回答你的问题:不,你不能在运行时分析代码语句.
不,使用它是不可能的switch
- 但你可以将这些信息存储在一个数组中:
$page_list = array(
'about' => array(
'title' => 'About Us',
'content' => 'includes/about-us.php',
),
'services' => array(
'title' => 'Services',
'content' => 'includes/services.php',
),
);
if(isset($page_list[$page])) {
$page_info = $page_list[$page];
$title_name = $page_info['title'];
$page_content = $page_info['content'];
include("inner.php");
} else {
// 404 - file not found
}
// create links
foreach($page_list as $link_name => $page_ent) {
echo "<a href=\"/{$link_name}/\">{$page_ent['title']}</a><br />"
}
// output
// <a href="/about/">About Us</a><br />
// <a href="/services/">Services</a><br />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2363 次 |
最近记录: |