Я пытаюсь написать синтаксический анализатор CSS для автоматической отправки URL-адресов в фоновых изображениях в разные субдомены для распараллеливания загрузок.
По сути, я хочу заменить такие вещи, как
url(/assets/some-background-image.png)
с
url(http://assets[increment].domain.com/assets/some-background-image.png)
Я использую это внутри класса, который я в конечном итоге хочу развить для выполнения различных задач разбора CSS.
Вот соответствующие части класса:
private function parallelizeDownloads(){
static $counter = 1;
$newURL = "url(http://assets".$counter.".domain.com";
Счетчик должен быть сброшен, когда он достигает 4, чтобы ограничить до 4 поддоменов.
if ($counter == 4) {
$counter = 1;
}
$counter ++;
return $newURL;
}
public function replaceURLs() {
В основном это чепуха, но я знаю, что код, который я ищу, выглядит примерно так. Примечание: $ this-> css содержит строку CSS.
preg_match("/url/i",$this->css,$match);
foreach($match as $URL) {
$newURL = self::parallelizeDownloads();
$this->css = str_replace($match, $newURL,$this->css);
}
}