Splits stylesheets that go beyond the IE limit of 4096 selectors. See this MSDN blog post for more information about this.
It's recommended to use Composer to install
$ composer require dlundgren/php-css-splitterThis will install the CssSplitter library and any required dependencies.
The default max selectors is 4095.
$splitter = new \CssSplitter\Splitter();
// Load your css file
$css = file_get_contents('styles.css');
// Skip the first part as the Internet Explorer interprets your css until it reaches the limit
$selector_count = $splitter->countSelectors($css) - 4095;
// Calculate how many additional parts we need to create
$additional_part_count = ceil($selector_count / 4095);
if($additional_part_count > 0) {
// Loop and create the additional parts
// Add an offset of two as we are creating the css from the second part on
for($part = 2; $part < $additional_part_count + 2; $part++) {
// Create or update the css files
file_put_contents('styles_'. $part .'.css', $splitter->split($css, $part));
}
}Original inspiration came from the Ruby gem CssSplitter.
CssSplitter is licensed under the MIT license. See License File for more information.