Pseudo code,
Original JSON file:
{
"param":"value",
"param1" "value",
... etc..
}
JSON.PHP file
<?php
$thatMuch = (60 * 60 * 24); // 24hrs
$cacheTime = (time() + $thatMuch);
$json = file_get_contents($originalJsonFile);
header('Pragma: public');
header('Cache-Control: maxage='.$thatMuch);
header('Expires: ' . gmdate('D, d M Y H:i:s', $cacheTime) . ' GMT');
header('Content-Type: application/json; charset=utf-8');
echo($json);
exit;
If You output that JSON as it is, than file_get_contents is ok, otherwise, You do what You need to do.. use json_encode(), change last header directive to something else, etc.
Also, You could *(if You haven't done so, already) remove .php extension lookup via .htaccess so that .php is not needed in path, therefore, the original path/url will remain exact the same.
Something like this *(root dir .htaccess)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [QSA,L]
</IfModule>
And this would be enough I guess...