使用php将多个css文件连接成一行的方法是什么?
我想减少以下内容..
<link href="reset.css" rel="stylesheet" type="text/css" media="screen">
<link href="grid.css" rel="stylesheet" type="text/css" media="screen">
<link href="commons.css" rel="stylesheet" type="text/css" media="screen">
到
<link href="concatenator.php+reset.css+grid.css+commons.css" rel="stylesheet" type="text/css" media="screen">
结果是一个包含所有样式表的css或html文件
此方法减少了http请求,并为设计人员和开发人员提供了使用dinamyc网站配置的其他功能。
答案 0 :(得分:2)
MatRt发布的代码很接近,但是使用+符号代替。附加的标志,它似乎并没有实际发送CSS到页面,即使它将打印CSS。
我设法获得这里提供的代码,并对其进行了一些小调整。这是:
<?php
// Check the parameter and stop if there is no files param
if (empty($_GET['files']))
die();
// Retrieve the list of files
$files = explode(",", $_GET['files']);
$directoryOfCss = 'C:\xampplite\htdocs\path\to\my\folder\css\\';
$cssContent = "";
// Loop on all potential file and try to retrieve its content
foreach($files as $oneFile)
{
//echo $directoryOfCss . $oneFile . ".css";
if (file_exists($directoryOfCss . $oneFile . ".css")){
//echo $directoryOfCss . $oneFile . ".css<br>";
$cssContent .= file_get_contents($directoryOfCss . $oneFile . ".css");
}
}
// Finally echo the total content of CSS
header("Content-Type: text/css");
header("X-Content-Type-Options: nosniff");
header("Content-Type: text/css;X-Content-Type-Options: nosniff;");
echo $cssContent;
我从this post获得了标题部分。
答案 1 :(得分:1)
您的网址应该更像
concatenator.php?files=reset,grid,commons
注意:如果您不喜欢,
,可以选择其他分隔符
着名的concatenator.php
可能就像
<?php
// Check the parameter and stop if there is no files param
if (empty($_GET['files']))
die();
// Retrieve the list of files
$files = explode(",", $_GET['files']);
$directoryOfCss = "/absolute/path/to/your/css/files/";
$cssContent = "";
// Loop on all potential file and try to retrieve its content
foreach($files as $oneFile)
{
if (file_exists($directoryOfCss + $oneFile + ".css"))
$cssContent += file_get_contents($directoryOfCss + $oneFile + ".css");
}
// Finally echo the total content of CSS
echo $cssContent;