eyecatch php

PHP

【PHP】指定したパス以下にあるディレクトリ一覧を取得する方法

2017/12/21

【PHP】現在実行中のスクリプトまでのパスを取得する方法」のポストでパスを取得できたので、取得したパスに存在するディレクトリの一覧を取得する方法をポストします。

同じ階層のディレクトリ一覧を取得する

パスの取得・指定

これは「【PHP】現在実行中のスクリプトまでのパスを取得する方法」で示した方法を利用します。
具体的には以下のようにします。

結果例:

/var/www/toogie-develop/toogie/www/blog_sample/php/path

※最後にスラッシュはつきません

ディレクトリ一覧の取得

ディレクトリの取得には簡単便利な関数「scandir();」が用意されているので、それを使います。

結果例:

Array
(
[0] => .
[1] => ..
[2] => dir1
[3] => dir2
[4] => dir3
[5] => dir4
)

scandir 関数

PHPマニュアルから使い方を参照。

scandir()関数は、指定されたパスのファイルとディレクトリの配列を返します。
この関数は、成功すれば配列を、失敗すれば FALSE と警告を返します。
directory がディレクトリではない場合は、 FALSE を返し、E_WARNING レベルのエラーを 発行します。

構文

array scandir ( string $directory [, int $sorting_order = SCANDIR_SORT_ASCENDING [, resource $context ]] )

パラメータ
directory
調べるディレクトリ。
sorting_order
デフォルトでは、ソート順はアルファベット昇順です。 オプションの sorting_order に SCANDIR_SORT_DESCENDING を設定した場合、 ソート順はアルファベット降順になります。 SCANDIR_SORT_NONE を設定すると、 結果をソートせずに返します。
context
context パラメータの説明についてはマニュアルのストリームを参照ください。

同階層のディレクトリへの目次的な自動リンクスクリプト

「PHPで現在のパスを取得する方法」及びこのポストは『自動リンクスクリプト』を作りたくて調べた結果だったりします。
せっかくなので知識の共有って事で晒してみたいと思います。

PHPスクリプト

ほぼ先ほど挙げたスクリプト + リンク処理だけで事足りるのですが、リンクさせたくないディレクトリがある場合にはそのディレクトリを無視するという処理を入れてみました。

デモ

このブログのサンプルを収めているディレクトリです。

-PHP
-, , , ,