ログイン

問題10 Pathを分解しよう

PHPの問題

PHP

Pathを分解しよう

問題

3階層めにtestディレクトリを付けたパスを取得しよう

自分の環境に書くコード

              $path = '/var/www/html/example.com/index.html';
¥PHP¥
            

期待する画面

/var/www/test/html/example.com/index.html
コードのアイコン

解答ソースコード

              $path = '/var/www/html/example.com/index.html';
$dir = dirname($path);
$arr = explode("/", $dir);
array_splice($arr, 3, 0, "test");
$dir = implode("/", $arr);
$path = $dir."/".basename($path);
echo $path;
¥PHP¥
            
答えのアイコン

解説

文字を途中に差し込むのは熟練者でも位置がずれたり文字が欠落するケースが多くデバッグに時間を要する。
そこで一度分解した後に戻すという手順を踏むようにしたい。

dirnameはディレクトリ名、basenameはファイル名をそれぞれ取得する関数だ。

まずはディレクトリ名のみ取得し区切り文字を使って配列化する。
配列化することによって指定の位置に簡単に差し込むことが可能になる。

差し込んだ後は配列から文字列に戻して最後にファイル名を付けて完成だ。
ファイル名の前に区切り文字を付け忘れないようにしよう。
ログインして解答を見る
完了にする!
1.PHPについての説明と表示
続きの動画を見たい方は公式LINEから「PHP」と送信すると動画が見れます。
LINEの友達追加でお役立ち動画をGET!!