Server : Apache System : Linux webd348.cluster026.gra.hosting.ovh.net 5.15.148-ovh-vps-grsec-zfs-classid #1 SMP Thu Feb 8 09:41:04 UTC 2024 x86_64 User : hednacluml ( 122243) PHP Version : 8.3.9 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Directory : /home/hednacluml/christian/plugins-dist/compresseur/ |
<?php /** * Réglage de l'output buffering * * Si possible, générer une sortie compressée pour économiser de la bande passante * * Utilisation déconseillee et désactivee par défaut. * Utilisable uniquement via define('_AUTO_GZIP_HTTP',true) * * @package SPIP\Compresseur\Options */ // si un buffer est deja ouvert, stop if ( defined('_AUTO_GZIP_HTTP') and _AUTO_GZIP_HTTP and strlen(ob_get_contents()) == 0 and !headers_sent() ) { if ( // special bug de proxy !(isset($_SERVER['HTTP_VIA']) and preg_match(',NetCache|Hasd_proxy,i', $_SERVER['HTTP_VIA'])) // special bug Netscape Win 4.0x and (strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla/4.0') === false) // special bug Apache2x #&& !preg_match(",Apache(-[^ ]+)?/2,i", $_SERVER['SERVER_SOFTWARE']) // si la compression est deja commencee, stop # && !@ini_get("zlib.output_compression") and !@ini_get('output_handler') and !isset($_GET['var_mode']) # bug avec le debugueur qui appelle ob_end_clean() ) { ob_start('ob_gzhandler'); } } /** * Transformer toutes les URLs relatives image,js en url absolues qui pointent sur le domaine statique * on applique pas a l'URL de la CSS, car on envoie un header http link qui permet au navigateur de la pre-fetch * sur le meme domaine, sans avoir a faire de requete DNS * @param string $flux * @return string */ function compresseur_affichage_final($flux) { if ( isset($GLOBALS['meta']['url_statique_ressources']) and isset($GLOBALS['html']) and $GLOBALS['html'] and $url_statique = $GLOBALS['meta']['url_statique_ressources'] ) { $url_statique = rtrim(protocole_implicite($url_statique), '/') . '/'; $flux = preg_replace(",(href|src)=([\"'])([^/][^:\"']*[.](?:png|gif|jpg|js)(?:\?[0-9]+)?)\\2,Uims", "\\1=\\2" . $url_statique . "\\3\\2", $flux); // prefetching // <link rel="dns-prefetch" href="//host_name_to_prefetch.com"> if (($p = strpos($url_statique, '/', 2)) !== false) { $url_statique = substr($url_statique, 0, $p); $link = "<link rel=\"dns-prefetch\" href=\"$url_statique\">"; if ($p = stripos($flux, '</title>')) { $flux = substr_replace($flux, "\n" . $link, $p + 8, 0); } } } return $flux; }