PHPで自分のファイル名を取得
ひそかにPHPでなんやかんやもやってるのでメモです
bbb/aaa/about.php
bbb/header.php
bbb/data/css.css
とすると、
自分の名前を犬のおまわりさんに聞かれたら↓こう答えます
// ★★自分のファイル名★★
$thisname = pathinfo($_SERVER[‘PHP_SELF’], PATHINFO_BASENAME);
例)$thisnameには「about.php」が入ります
// ★★自分の直のディレクトリ名★★
$list = split( “/”, $_SERVER[ SCRIPT_NAME ] );
$dirname = $list[ count( $list ) – 2 ];
例)$dirnameには「aaa」が入ります
// ★★相対パス★★
まずは”/”の出現回数を取得
$cnt = substr_count( dirname($_SERVER[‘PHP_SELF’]) , “/” );
“/”だけだったら0
$cnt = ( !strcmp(dirname($_SERVER[‘PHP_SELF’]), “/” ) ) ? (0) : $cnt ;
$cnt–;
$relativ_path = ($cnt == 0) ? (“./”) : str_repeat( “../”, $cnt ) ;
例)data/css.cssへのパスは、
$file_name = $relativ_path.”data/css.css”;
$file_nameは、自分の位置を取得して、../data/css.cssだったり、./data/css.cssだったり
久々にPHPをさわったら、文字列の「等しい」が、「==」だったか「=」だったか悩んでしまいました。perlだと「eq」ですねぇ