自动从某个目录导入所有 CSS 文件的 PHP 函数

我目前正在一个有 6 个 CSS 文件的网站上工作。我想制作一个扫描目录并在 de HTMl 头中加载所有 CSS 文件的 php 函数。我在索引页面上得到了这个工作,但是当我转到另一个页面时它就不起作用了。这是因为它正在从不同的位置搜索 CSS 文件夹。需要明确的是,在根文件夹中,我有一个名为 Header.php、index.php 和 Footer.php 的文件。header.php 文件包含 HTML 头部和网站顶部的导航栏/菜单。header.php 用这一行加载到每个页面中


require "header.php"; 

上层页面的文件路径发生变化,例如“关于我们”页面中的文件路径如下所示


require "../../header.php";

我可以通过为每个 sup 目录创建函数来解决问题,但这不是正确的方法(至少我认为)。这是我当前的 php 函数:


function css(){

    $css = glob("CSS/*.css");

    $css_out = "";

    foreach($css as $css_path){

        $css_out .= '<link rel="stylesheet" href="'.$css_path.'">'; 

    }

    return $css_out;

}

我在页面顶部有这个,只是失去了要求标题


$css_web = css();

我加载实际数据


 <?php echo $css_web?>


慕运维8079593
浏览 124回答 2
2回答

回首忆惘然

使用绝对 URL 而不是相对 URL。代替$css_out .= '<link rel="stylesheet" href="'.$css_path.'">';和//$assets_url = "http://example.com/assets/css/";$css_out .= '<link rel="stylesheet" href="'.$assets_url.'.'.$css_path.'">';

潇湘沐

做得更好,不再需要任何进一步的请求!遍历文件,抓取内容,并将其回显到一个<style>块中!$css = glob("CSS/*.css");$css_out = '<style>';foreach($css as $css_path){&nbsp; &nbsp; $style = file_get_contents($css_path);&nbsp; &nbsp; $css_out .= $style;&nbsp;}return $css_out . '</style>;然后在你的脑海中回响:-D为了保持路径正确,您可以使用__DIR__which 为您提供您所在文件的目录:-),您可以通过将其传递到realpath()
打开App,查看更多内容
随时随地看视频慕课网APP