web関連

【php】realpath()を使ってファイルの正規化された絶対パスを取得する

2019/07/12

2019/07/11

【php】realpath()を使ってファイルの正規化された絶対パスを取得する

ファイルの更新日時を取得するfiletime関数とセット使われていたので使ってみた時の備忘録

realpath()とは

ファイルの正規化された絶対パスを取得できる
ファイルが存在しない等、失敗したらFALSE返す

<?php echo realpath("style.css"); ?>
↓出力
/home/○○○○/www/style.css

<?php echo realpath("wp-content/themes/sampletheme/style.css"); ?>
↓出力
/home/○○○○/www/wp-content/themes/sampletheme/style.css

こんな感じで出力できる
ちなみにさくらサーバーの例

サーバー内の絶対パスが取得できるってことかな?

 

dirname( __FILE__ )でも同じことができるみたい

なんか調べてたら出てきたのでメモ

<?php echo dirname( __FILE__ ) . '/style.css'; ?>
↓出力
/home/○○○○/www/style.css

dirname()はディレクトリのパスを返す関数
これが無いと「/home/○○○○/www/index.php/style.css」って感じでファイル名(index.php)も入っちゃう

違いについては以下のリンクが参考になるかも

「realpath」と「__FILE__」の違いは、シンボリックリンクを評価するかどうかだけ?

シンボリックリンクはWindowsのショートカットみたいな存在らしい、消しても本体に影響のない中継するためのファイルorディレクトリのまがいもの
参考

あと、これでも同じ結果でた↓

<?php echo __DIR__ . '/style.css'; ?>
↓出力
/home/○○○○/www/style.css

色々あるんすね

 

くわしい事はあとで調べる
頭痛くなってきた(サーバー嫌々病)