PHPで相対パスから絶対パスへ変換するプログラム
PHPコード:
/**
* 相対パスは絶対パスへ変換
* @param string $file
* @return string
*/
function dirToHttpUrl($file) {
//ファイルが存在するかどうかを確認
if (!file_exists($file)) {
return false;
}
//ドメイン
$nowUrl = dirname('http://’.$_SERVER['HTTP_HOST’].$_SERVER['PHP_SELF’]); //現在のドメイン名
$tempUrl = explode('.’, $_SERVER['HTTP_HOST’]);
$dirUrl = 'http://www.’.$tempUrl[1].’.’.$tempUrl[2].’/’; //プライマリドメイン名
$tempFile = explode('../’, $file);
$tempNum = array_count_values($tempFile);
if (array_key_exists(", $tempNum)) {
$fileNum = $tempNum["];
$fileEnd = end($tempFile);
} else {
$fileNum = 0;
$fileEnd = '/’.substr($tempFile[0], 2);
}
//ファイルパス階層を統計
$tempWeb = explode('/’, $nowUrl);
$tempWeb = array_slice($tempWeb, 3);
$webNum = count($tempWeb);
//ファイルに対応するドメイン名
if ($fileNum > $webNum) {
$nowUrl = $dirUrl;
}
//結果をリターン
return $nowUrl.$fileEnd;
}
//dirToHttpUrl('./1.jpg’);