Ben otomatik olarak indirme parallelize için farklı alt etki alanları için arka plan görüntüleri URL'leri göndermek için bir CSS ayrıştırıcı yazmaya çalışıyorum.
Temelde, ben gibi şeyler değiştirmek istiyor
url(/assets/some-background-image.png)
ile
url(http://assets[increment].domain.com/assets/some-background-image.png)
Ben sonunda çeşitli CSS ayrıştırma görevleri yaparken dönüşmeye istediğiniz bir sınıf içinde bu kullanıyorum.
Burada sınıfın ilgili parçaları şunlardır:
private function parallelizeDownloads(){
static $counter = 1;
$newURL = "url(http://assets".$counter.".domain.com";
Sayacı 4 ulaştığında 4 alt etki alanları sınırlamak için sıfırlanması gerekiyor.
if ($counter == 4) {
$counter = 1;
}
$counter ++;
return $newURL;
}
public function replaceURLs() {
Bu çoğunlukla saçmalıktır, ama ben biraz böyle görünüyor arıyorum kodunu biliyorum. Not: $ this-> css CSS dizesini içerir.
preg_match("/url/i",$this->css,$match);
foreach($match as $URL) {
$newURL = self::parallelizeDownloads();
$this->css = str_replace($match, $newURL,$this->css);
}
}