WP File Manager
Current Path:
/
home
/
argothem
/
www
/
v4_old
/
fichiers_obsoletes_20220627_043105
/
plugins-dist
/
medias
/
metadata
/
Name
Action
..
svg.php
Edit
Editing: svg.php
<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2020 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ /** * Informations meta d'un SVG * * @package SPIP\Medias\Metadata **/ if (!defined('_ECRIRE_INC_VERSION')) { return; } include_spip('inc/autoriser'); /** * Déterminer les dimensions d'un svg, et enlever ses scripts si nécessaire * * On utilise safehtml qui n'est pas apropriée pour ça en attendant mieux * cf http://www.slideshare.net/x00mario/the-image-that-called-me * http://heideri.ch/svgpurifier/SVGPurifier/index.php * * @param string $file * @return array Tableau (largeur, hauteur) */ function metadata_svg_dist($file) { $meta = array(); $texte = spip_file_get_contents($file); // Securite si pas autorise : virer les scripts et les references externes // sauf si on est en mode javascript 'ok' (1), cf. inc_version if ($GLOBALS['filtrer_javascript'] < 1 and !autoriser('televerser', 'script') ) { include_spip('inc/texte'); $new = trim(safehtml($texte)); // petit bug safehtml if (substr($new, 0, 2) == ']>') { $new = ltrim(substr($new, 2)); } if ($new != $texte) { ecrire_fichier($file, $texte = $new); } } $width = $height = 150; if (preg_match(',<svg[^>]+>,', $texte, $s)) { $s = $s[0]; if (preg_match(',\WviewBox\s*=\s*.\s*(\d+)\s+(\d+)\s+(\d+)\s+(\d+),i', $s, $r)) { $width = $r[3]; $height = $r[4]; } else { // si la taille est en centimetre, estimer le pixel a 1/64 de cm if (preg_match(',\Wwidth\s*=\s*.(\d+)([^"\']*),i', $s, $r)) { if ($r[2] != '%') { $width = $r[1]; if ($r[2] == 'cm') { $width <<= 6; } } } if (preg_match(',\Wheight\s*=\s*.(\d+)([^"\']*),i', $s, $r)) { if ($r[2] != '%') { $height = $r[1]; if ($r[2] == 'cm') { $height <<= 6; } } } } } $meta['largeur'] = $width; $meta['hauteur'] = $height; return $meta; }