J'essaie d'écrire un analyseur CSS pour envoyer automatiquement les URL des images d'arrière-plan à différents sous-domaines afin de paralléliser les téléchargements.Remplacer la chaîne par une valeur incrémentée
Fondamentalement, je veux remplacer des choses comme
url(/assets/some-background-image.png)
avec
url(http://assets[increment].domain.com/assets/some-background-image.png)
J'utilise ceci dans une classe que je veux éventuellement évoluer en faisant diverses tâches d'analyse CSS.
Voici les parties pertinentes de la classe:
private function parallelizeDownloads(){
static $counter = 1;
$newURL = "url(http://assets".$counter.".domain.com";
Le compteur doit être remis à zéro quand il atteint 4 afin de limiter à 4 sous-domaines.
if ($counter == 4) {
$counter = 1;
}
$counter ++;
return $newURL;
}
public function replaceURLs() {
C'est la plupart du temps un non-sens, mais je sais que le code que je suis à la recherche ressemble un peu comme celui-ci. Note: $ this-> css contient la chaîne CSS.
preg_match("/url/i",$this->css,$match);
foreach($match as $URL) {
$newURL = self::parallelizeDownloads();
$this->css = str_replace($match, $newURL,$this->css);
}
}
Alors, quelle est la question? – eykanal
Oh, désolé, ce n'était pas très clair. Fondamentalement, comment vais-je faire cela pour que cela fonctionne: D? En ce moment, il remplace les cordes correctement mais n'incrémente rien. Sinon, je suis à la recherche de suggestions sur la façon de le faire de la bonne façon. – Andrei