如果请求某个页面,请使用php导入样式表

时间:2015-05-27 16:12:18

标签: php css import include

我想根据php条件(或其他)在页面中导入css样式表,这个条件基于域URL。

例如,如果加载的页面是“mydomain.com/about-us”,则导入“css / about-us.css”文件。

我已尝试使用此代码,但它不起作用。

<?php
    $url = $_SERVER['REQUEST_URI'];
    if (strstr($url, "mydomain.com/about-us/")) {
        include '/css/about-us.css'; 
    }
?>

如何有条理地导入或使用<style>标记?

解决方案更正:

正确的解决方案是仅使用页面名称,因此如果您的页面是mydomain.com/about-us /

仅使用“/ about-us /”。

现在还有其他问题,发布的代码可以导入特定页面的css,但是我注意到如果域名是mydomain.com/about-us/team.html页面中的示例team.html也加载了css “约 - 我们”如何仅在页面mydomain / about-us / ??中加载css for about-us

3 个答案:

答案 0 :(得分:3)

如何阅读herestrstr将返回字符串或FALSE。您可以这样更改:

<!DOCTYPE html>
<head>
<?php
if (strstr($_SERVER['REQUEST_URI'], "mydomain.com/about-us/")!=false) {
echo '<link rel="stylesheet" type="text/css" href="/css/about-us.css">';
} ?>
</head>
...
</body>
</html>

或者:

<!DOCTYPE html>
<head>
<style type="text/css">
<?php
if (strstr($_SERVER['REQUEST_URI'], "mydomain.com/about-us/")!=false) {
echo file_get_contents('/css/about-us.css');
} ?>
</style>
</head>
...
</body>
</html>

在第一个示例中,CSS通过<link>标记包含在内,在第二个示例中,PHP脚本将CSS文件加载到script - 标记中。你不能使用include因为它会加载另一个php文件并执行它所包含的位置。您应该使用我的第一个示例,因为它更加服务器友好,因为不需要读取CSS文件。您的页面会更快。

答案 1 :(得分:0)

您可以使用PHP将样式表添加到页面中,方法是将其包含在html文档的<head>中:

<?php
echo '<link rel="stylesheet" type="text/css" href="' . $file . '">';
?>

其中$file是css文件的名称。您需要提供更多信息,说明您为了获得更好的答案而尝试做些什么。

更新

变量$_SERVER[REQUEST_URI]仅提供请求的页面,而不是整个域。从PHP手册,

  

&#39; REQUEST_URI&#39;       为访问此页面而给出的URI;例如,&#39; /index.html'。

因此代码应如下所示:

<?php
    $requested_page = $_SERVER['REQUEST_URI'];
    if ($requested_page === "/about-us" || $requested_page === "/about-us/") {
        echo '<link rel="stylesheet" type="text/css" href="/css/about-us.css">';
    }
?>

这将测试所请求的页面是否是&#34; / about-us&#34; (客户端正在请求&#34; about-us&#34;页面),如果是,则会回显样式表的链接。

答案 2 :(得分:0)

使用它:

<?php
    $url = $_SERVER['REQUEST_URI'];
    if (strstr($url, "mydomain.com/about-us/")) 
    {
        // output an HTML css link in the page
        echo '<link rel="stylesheet" type="text/css" href="/css/about-us.css" />'; 
    }
   else
   {
        // output an HTML css link in the page
        echo '<link rel="stylesheet" type="text/css" href="/css/another.css" />'; 
   }
?>

您也可以直接导入css内容,但可能会有一些媒体/图片链接中断:

<?php
    $url = $_SERVER['REQUEST_URI'];
    if (strstr($url, "mydomain.com/about-us/")) 
    {
        // output css directly in the page
        echo '<style type="text/css">' .file_get_contents('./css/about-us.css').'</style>'; 
    }
   else
   {
        // output css directly in the page
        echo '<style type="text/css">' .file_get_contents('./css/another.css').'</style>'; 
   }
?>