我正在将基于片段的内容管理系统实施到我当前的项目中。片段可以通过完整网址的完全匹配回退到部分网址上的通配符匹配或最后一个默认片段与页面相关联。
为了实现这一点,我创建了一个带有通配符标志的页面关联表,系统首先根据非通配符关联检查当前 url,如果找不到匹配项,它会检查设置通配符标志的部分 url .
为了实现这一点,我从数据库中获取所有部分 url 并将它们放入一个数组中,然后遍历数组以检查与当前 url 的匹配:
protected function _check_wildcard($url = NULL)
{
if($url)
{
$q = $this->db->where('wildcard' ,'Y')
->from('content')
->get();
$wildcards = $q->result_array();
foreach($wildcards AS $wildcard)
{
if(strpos($url,$wildcard['url']) !== FALSE )
{
return $wildcard['snippet_id'];
}
}
}
else
{
return NULL;
}
}
任何人都可以建议一种更好的方法来做到这一点 - 最好是不需要每次加载页面时都必须不断下载所有通配符的完整列表,因为我担心这会对可扩展性产生负面影响系统下线?