我想在我的网站上实施标签系统.该网站使用PHP制作,但未使用任何数据库(sql)系统.它从纯文本文件中读取文件并将其包括在内.
页面位于文件中,如果请求读取页面,则读取该文件,如果页面位于该页面中,则站点将其返回.如果页面不在该页面中,则会给出错误(因此,没有路径遍历问题,我可以让页面“ blablabla”转到“ other-page.inc.php”).
页面列表是一个大写的语句,如下所示:
case "faq":
$s_inc_page= $s_contentdir . "static/faq.php";
$s_pagetitle="FAQ";
$s_pagetype="none";
break;
($s_pageype用于CSS主题).
我想要的是这样的:
case "article-about-cars":
$s_inc_page= $s_contentdir . "article/vehicles/about-cars.php";
$s_pagetitle="Article about Cars";
$s_pagetype="article";
$s_tags=array("car","mercedes","volvo","gmc");
break;
然后一个带有标签作为获取变量的标签页,检查哪些情况在$s_tag数组中具有该标签,然后返回这些情况.
这是可能的,还是我的方向错误?
解决方法:
我可以通过将页面详细信息保留在一个数组中来做到这一点,例如:
$pages['faq']['s_inc_page'] = $s_contentdir . "static/faq.php";
$pages['faq']['s_pagetitle'] = "FAQ";
$pages['faq']['s_pagetype'] = "none";
$pages['faq']['s_tags'] = array("car","mercedes","volvo","gmc");
然后,您可以使用foreach循环遍历此数组,并取出带有匹配标签的项目:
$tag = "car";
foreach($pages as $page) {
if (in_array($tag, $page['s_tags'])) {
//do whatever you want to do with the matches
echo $page['s_pagetitle'];
}
}