PHP функция, которая автоматически импортирует все CSS файлы из определенного каталога - PullRequest
0 голосов
/ 23 января 2020

Я работаю над сайтом, на котором в данный момент находится 6 CSS файлов. Я хочу создать функцию php, которая сканирует каталог и загружает все файлы CSS в головку de HTMl. У меня это работает на странице индекса, но как только я перехожу на другую страницу, это не работает. Это потому, что он ищет папку CSS из другого места. Чтобы было понятно, в папке root у меня есть файл с именем Header. php, index. php и Footer. php. Файл заголовка. php содержит заголовок HTML и панель навигации / меню в верхней части веб-сайта. Заголовок. 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?>

Ответы [ 2 ]

0 голосов
/ 23 января 2020

Go еще лучше, и избавьте от необходимости дальнейших запросов!

L oop просматривайте файлы, захватывайте содержимое и выводите его в блок <style>!

$css = glob("CSS/*.css");
$css_out = '<style>';

foreach($css as $css_path){
    $style = file_get_contents($css_path);
    $css_out .= $style; 
}

return $css_out . '</style>;

Затем просто отобразите его в своей голове: -D

Чтобы сохранить правильные пути, вы можете использовать __DIR__, который дает вам каталог файла, в котором вы находитесь :-), и вы можете получить абсолютные пути, передав их в realpath()

0 голосов
/ 23 января 2020

Используйте абсолютный 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.'">';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...