Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mendapatkan Subdirektori dalam PHP, Tidak Termasuk Root dan Penunjuk Traversal Direktori?

Bagaimana untuk Mendapatkan Subdirektori dalam PHP, Tidak Termasuk Root dan Penunjuk Traversal Direktori?

Linda Hamilton
Linda Hamiltonasal
2024-11-14 14:35:02990semak imbas

How to Retrieve Subdirectories in PHP, Excluding Root and Directory Traversal Indicators?

Mendapatkan semula Subdirektori Menggunakan PHP

Dalam PHP, anda mungkin menghadapi keperluan untuk mengakses semua subdirektori dalam direktori tertentu, tidak termasuk root dan traversal direktori penunjuk. Begini cara anda boleh mencapai ini menggunakan dua pendekatan berbeza.

Pilihan 1: Menggunakan glob()

Fungsi glob() menyediakan cara yang mudah untuk menyenaraikan fail dan direktori memadankan corak tertentu. Untuk mendapatkan semula subdirektori sahaja, gunakannya dengan pilihan GLOB_ONLYDIR:

$subdirectories = glob('*/*', GLOB_ONLYDIR);

Pilihan 2: Menggunakan array_filter

array_filter membolehkan anda menapis tatasusunan berdasarkan fungsi panggil balik . Anda boleh menggunakannya untuk mengenal pasti subdirektori dengan mengecualikan "." dan ".." dan menapis hasil glob():

function is_subdirectory($item) { return is_dir($item) && $item != '.' && $item != '..'; }
$subdirectories = array_filter(glob('*'), 'is_subdirectory');

Penggunaan dalam Fungsi

Setelah anda mempunyai tatasusunan subdirektori, anda boleh luluskannya kepada fungsi untuk pemprosesan selanjutnya. Sebagai contoh, fungsi berikut mencetak laluan semua subdirektori:

function print_subdirectory_paths($subdirectories) {
  foreach ($subdirectories as $subdirectory) {
    echo $subdirectory . PHP_EOL;
  }
}

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Subdirektori dalam PHP, Tidak Termasuk Root dan Penunjuk Traversal Direktori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn