我目前正在尝试编译一些我通过表单请求接收的SCSS。当前的工作流程是用户提交表单数据,如下所示:
{"$background_color":"#f3f3f3","$logo_url":"https:\/\/logo.co\/random"}
然后我将此输入转换为以下内容:
$background_color: '#f3f3f3';
$logo_url: 'https://logo.co/random'
对于将其编译为CSS而言,这应该是有效的,因此我使用以下代码通过SCSSPHP运行它:
$scss->addImportPath(Storage::disk('tmp'));
$output = $scss->compile("@import 'test'; $statement ");
运行此命令时不会触发错误,输出为:
@import 'test';
我的test.scss
如下:
$background_colour: 'red'
$logo_url: 'https://test.com'
.logo {
background-image: $logo_url;
}
.background_colour {
background-colour: $background_colour;
}
我在这里做什么错了?
答案 0 :(得分:1)
问题是您未将字符串传递给此函数。 使用功能 file_get_contents
将您的scss解析为字符串require_once "scssphp/scss.inc.php";
use Leafo\ScssPhp\Compiler;
$scss = new Compiler();
// Gets the content of the scss file in string format
$scss_string = file_get_contents(path/to/scss.file);
echo $scss->compile($scss_string);