svnno****@sourc*****
svnno****@sourc*****
2010年 10月 20日 (水) 19:29:03 JST
Revision: 2069 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2069 Author: dhrname Date: 2010-10-20 19:29:03 +0900 (Wed, 20 Oct 2010) Log Message: ----------- sie.phpをrevulo氏の作った0.4にアップデート Modified Paths: -------------- trunk/sie_php/.htaccess trunk/sie_php/sie.php Modified: trunk/sie_php/.htaccess =================================================================== --- trunk/sie_php/.htaccess 2010-10-20 10:26:44 UTC (rev 2068) +++ trunk/sie_php/.htaccess 2010-10-20 10:29:03 UTC (rev 2069) @@ -1,5 +1,6 @@ +AddEncoding gzip svgz + RewriteEngine on -RewriteCond %{REQUEST_URI} \.svg$ [NC] -RewriteCond %{HTTP_USER_AGENT} MSIE -RewriteCond %{THE_REQUEST} !\? -RewriteRule ^(.*)$ ./sie.php [L] +RewriteCond %{REQUEST_URI} \.svgz?$ [NC] +RewriteCond %{HTTP_USER_AGENT} MSIE\ [5-8] +RewriteRule .* sie.php [L] Modified: trunk/sie_php/sie.php =================================================================== --- trunk/sie_php/sie.php 2010-10-20 10:26:44 UTC (rev 2068) +++ trunk/sie_php/sie.php 2010-10-20 10:29:03 UTC (rev 2069) @@ -3,13 +3,13 @@ /** * sie.php * - * Copyright (c) 2008 revulo + * Copyright (c) 2008-2010 revulo * * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in @@ -19,15 +19,15 @@ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. * * @package sie * @author revulo <revul****@gmail*****> - * @copyright 2008 revulo + * @copyright 2008-2010 revulo * @license http://www.opensource.org/licenses/mit-license.php MIT License - * @version Release: 0.3 + * @version Release: 0.4 * @link http://www.revulo.com/SVG/SIE.html * @link http://sie.sourceforge.jp/ */ @@ -35,12 +35,21 @@ // Filename of SIE JavaScript library. define('SIE_JS', 'sie.js'); -// Get the path of the requested file. -$file = rawurldecode($_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI']); +// Get the requested URL. +$url = $_SERVER['REQUEST_URI']; +// Trim the query string from the URL. +$pos = strrpos($url, '?'); +if ($pos !== false) { + $url = substr($url, 0, $pos); +} + +// Get the path to the requested file. +$file = rawurldecode($_SERVER['DOCUMENT_ROOT'] . $url); + // Check the file extension. $extension = strtolower(pathinfo($file, PATHINFO_EXTENSION)); -if ($extension !== 'svg') { +if ($extension !== 'svg' && $extension !== 'svgz') { header('HTTP/1.1 403 Forbidden'); exit; } @@ -60,16 +69,31 @@ exit; } +// If the requested URL contains a question mark, download the file. +if ($pos !== false) { + header('Content-Type: application/octet-stream'); + header('Content-Disposition: attachment'); + header('Content-Length: ' . filesize($file)); + readfile($file); + exit; +} + // Get the relative-path reference to the requested file. -$url = basename($_SERVER['REQUEST_URI']); +$url = basename($url); // Decode the file name. $name = rawurldecode($url); $name = mb_convert_encoding($name, 'UTF-8', 'auto'); $name = htmlspecialchars($name); +// Get uncompressed file contents. +if ($extension === 'svgz') { + $data = file_get_contents('compress.zlib://' . $file); +} else { + $data = file_get_contents($file); +} + // Strip <script> tags from the file contents. -$data = file_get_contents($file); $data = preg_replace('/<script.*?\/script>/is', '', $data); // Get the absolute-path reference to the JavaScript file. @@ -84,6 +108,7 @@ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> + <div style="color: #777; margin-bottom: 1em;"> This is an image converted by <a href="http://sie.sourceforge.jp/">SIE</a>.<br /> Original file: <a href="<?php echo $url ?>?" title="Download <?php echo $name ?>"><?php echo $name ?></a> @@ -93,5 +118,6 @@ <?php echo $data ?> </script> <script type="text/javascript" src="<?php echo $javascript ?>"></script> + </body> </html>