如何管理在许多不同页面中加载不同样式表

时间:2018-08-18 18:20:07

标签: php arrays if-statement

我的HTML文档的head标签中有一些PHP(请参阅下面的3),这将加载正确的CSS样式表,具体取决于该特定领域在数据库中的网页登陆器。以下代码适用于数量庞大的100多个域。

我想知道我拥有的代码是否最有效,或者是否可以将组压缩为一个数组?这意味着我不需要那么多重复的行。

1。我第一次尝试(较短的)新代码:

strand

2。我第二次尝试使用(新的)较短的代码,但仍然太长,可能是错误的:

@if(strpos(strtolower($domdata->Lander),'bowling','birthday','cars','etc..') !== false)
<link rel="stylesheet" href="/css/custom/custom-group.css">
@endif

3。我的(现有)长代码:

@if(strpos(strtolower($domdata->Lander),'bowling') || (strpos(strtolower($domdata->Lander),'birthday') || (strpos(strtolower($domdata->Lander),'cars') !== false)))
<link rel="stylesheet" href="/css/custom/custom-group.css">
@endif

1 个答案:

答案 0 :(得分:0)

我不确定我是否会使用这种方法进行代码管理,但是,这是您建议的一些代码减少示例:

$stufftoload = "bowling,birthday,cars,...";
foreach (explode(",", $stufftoload) as $name) {
    if (strpos(strtolower($domdata->Lander), $name) !== false) { 
        echo "<link rel=\"stylesheet\" href=\"/css/custom/custom-group.css\">";
        break;
    }
}

按照James的建议,将“ @”放掉-您不想隐藏错误消息。我中断了一下,因为看来您可能会重复加载同一文件,尽管不知道$ domdata-> Lander是什么样子很难知道。例如,如果$ domdata-> Lander中仅包含“汽车”之类的内容,则可能会执行以下操作:

$stufftoload = "bowling,birthday,cars,...";
if (strpos($stufftoload, strtolower($domdata->Lander)) !== false) { 
    echo "<link rel=\"stylesheet\" href=\"/css/custom/custom-group.css\">";
}