mirror of
https://github.com/scratchfoundation/scratch-html5.git
synced 2024-12-01 03:16:59 -05:00
46 lines
1.5 KiB
PHP
46 lines
1.5 KiB
PHP
<?php
|
|
/*
|
|
* Proxy.php is for local development to get around
|
|
* same-origin policy restrictions with regards to
|
|
* loading remote JSON and data. In production,
|
|
* proxy.php should be removed from the server.
|
|
*/
|
|
|
|
$resource = 'http://scratch.mit.edu/' . $_GET['resource'];
|
|
|
|
// Strip the /get/ suffix for calculating the extension
|
|
// and then get the file extension to pass on to the browser.
|
|
// This is an unfortunate hack, but then so is the proxy.
|
|
$extension = pathinfo(substr($resource, 0, strlen($resource)-4),
|
|
PATHINFO_EXTENSION);
|
|
|
|
header('Access-Control-Allow-Origin: *');
|
|
|
|
$contents = @file_get_contents($resource);
|
|
|
|
switch($extension) {
|
|
case 'json':header('Content-type: text/plain'); break;
|
|
case 'png': header('Content-type: image/png'); break;
|
|
case 'jpg': header('Content-type: image/jpeg'); break;
|
|
case 'svg':
|
|
header('Content-type: image/svg+xml');
|
|
// Extremely ugly hack to temporarily repair broken SVGs generated
|
|
// by the Scratch editor for blank backgrounds.
|
|
// TODO: Fix the Scratch editor
|
|
$contents = str_replace('<svg width="480" height="360">',
|
|
'<svg width="480" height="360" xmlns="http://www.w3.org/2000/svg" ' .
|
|
'version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">',
|
|
$contents
|
|
);
|
|
break;
|
|
case 'swf':
|
|
// For testing
|
|
header('Content-type: application/x-shockwave-flash');
|
|
header("Cache-Control: no-cache, must-revalidate");
|
|
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
|
|
break;
|
|
default: header('Content-type: text/plain'); break;
|
|
}
|
|
|
|
die($contents);
|
|
?>
|