絶対または相対ローカルパス (たとえば./images/Mafalda.jpg
) を対応する絶対 URL にマップするための高速で信頼性の高い方法が必要です。これまでのところ、これを思い付くことができました。
function Path($path)
{
if (file_exists($path) === true)
{
return rtrim(str_replace('\\', '/', realpath($path)), '/') . (is_dir($path) ? '/' : '');
}
return false;
}
function URL($path)
{
$path = Path($path);
if ($path !== false)
{
return str_replace($_SERVER['DOCUMENT_ROOT'], getservbyport($_SERVER['SERVER_PORT'], 'tcp') . '://' . $_SERVER['HTTP_HOST'], $path);
}
return false;
}
URL('./images/Mafalda.jpg'); // http://domain.com/images/Mafalda.jpg
期待どおりに動作しているようですが、これは私のアプリにとって重要な機能であるため、見落としている可能性のある問題を誰かが見つけられるかどうかを尋ねたいと思います。また、この機能をそれぞれ数回使用するため、最適化も歓迎しますリクエスト。誰?