[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / plugins-dist / compresseur / inc / compresseur_embarquer.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 /**
14 * Fonctions pour embarquer des images dans un CSS
15 *
16 * @package SPIP\Compresseur\Embarquer
17 */
18 if (!defined("_ECRIRE_INC_VERSION")) return;
19
20 /**
21 * Embarque en base64 les images png|gif|jpg présentes dans un fichier CSS
22 *
23 * Extrait les images décrites par 'url(...)' d'un fichier CSS pour
24 * les faire embarquer directement dans le fichier
25 *
26 * @see filtre_embarque_fichier()
27 *
28 * @param string $contenu
29 * Contenu d'un fichier CSS
30 * @param string $source
31 * Source de ce fichier CSS
32 * @return string
33 * Contenu du fichier CSS avec les images embarquées
34 **/
35 function compresseur_embarquer_images_css($contenu, $source){
36 #$path = suivre_lien(url_absolue($source),'./');
37 $base = ((substr($source,-1)=='/')?$source:(dirname($source).'/'));
38
39 return preg_replace_callback(
40 ",url\s*\(\s*['\"]?([^'\"/][^:]*[.](png|gif|jpg))['\"]?\s*\),Uims",
41 create_function('$x',
42 'return "url(\"".filtre_embarque_fichier($x[1],"'.$base.'")."\")";'
43 ), $contenu);
44 }
45
46
47 /**
48 *
49 Embarquer des images dans les css, tous nav :
50
51 /*
52 Content-Type: multipart/related; boundary="_ANY_STRING_WILL_DO_AS_A_SEPARATOR"
53
54 --_ANY_STRING_WILL_DO_AS_A_SEPARATOR
55 Content-Location:chevron
56 Content-Transfer-Encoding:base64
57
58 iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFAQMAAAC3obSmAAAABlBMVEX///9mZmaO7mygAAAAEElEQVR42mNYwBDAoAHECwAKMgIJXa7xqgAAAABJRU5ErkJggg==
59
60 --_ANY_STRING_WILL_DO_AS_A_SEPARATOR
61 ...
62
63 --_ANY_STRING_WILL_DO_AS_A_SEPARATOR
64 * /
65
66 Puis
67
68 background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFAQMAAAC3obSmAAAABlBMVEX///9mZmaO7mygAAAAEElEQVR42mNYwBDAoAHECwAKMgIJXa7xqgAAAABJRU5ErkJggg==");
69 *background-image:url(mhtml:urlfeuille.css!chevron)}
70
71 *
72 */