Pep*_*les 8 html css php variables
我将HTML和CSS与PHP变量混合在一起,这样我只需一个配置文件即可管理很多设置.这一切都运行正常,但我现在正在尝试合并和缩小CSS.这会导致问题.
变量不会回显到压缩表中,因为PHP脚本不会被执行.这是因为file_get_contents()将内容转换为字符串.
是否可以先以某种方式执行文件,然后获取其内容?或者以另一种方式抓住他们的内容,他们仍将执行的方式?
config.php文件
$priColor = '#000';
Run Code Online (Sandbox Code Playgroud)
基stylesheet.php
/* CSS header defined */
/* config.php included */
body{
background-color: <?= $priColor ?>;
}
Run Code Online (Sandbox Code Playgroud)
特定stylesheet.php
/* CSS header defined */
/* config.php included */
.site-specific-element{
background-color: <?= $priColor ?>;
}
Run Code Online (Sandbox Code Playgroud)
精缩,stylesheets.php
// Set files that must be minified
$cssFiles = array(
"base-styleseet.php",
"specific-stylesheet.php"
);
// Get those files
$buffer = "";
foreach ($cssFiles as $cssFile) {
$buffer .= file_get_contents($cssFile);
}
// Minify and echo them
minifyCSS($buffer);
echo $buffer;
Run Code Online (Sandbox Code Playgroud)
的index.php
<link rel="stylesheet" href="minified-stylesheets.php">
Run Code Online (Sandbox Code Playgroud)
您已经熟悉该ob_start()方法了。
但我会展示一个更好的替代方案(而且更快):
您的主文件:
$cssFiles = array(
"base-styleseet.php",
"specific-stylesheet.php"
);
$buffer = "";
foreach ($cssFiles as $cssFile) {
$buffer .= include($cssFile);
}
minifyCSS($buffer);
echo $buffer;
Run Code Online (Sandbox Code Playgroud)
好吧,这里没什么。刚刚添加了一个include()...
但它不会按预期工作,除非你对每个文件都这样做:
使用基本样式表作为示例:
$cssFiles = array(
"base-styleseet.php",
"specific-stylesheet.php"
);
$buffer = "";
foreach ($cssFiles as $cssFile) {
$buffer .= include($cssFile);
}
minifyCSS($buffer);
echo $buffer;
Run Code Online (Sandbox Code Playgroud)
* 忽略损坏的语法高亮
你就完成了。
不再恶心了ob_start()!!!
另外,CSS 注释使用的/* */语法,//将被评估为无效的 CSS 选择器。
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |