Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan fungsi PHP glob() untuk mencari fail berdasarkan aksara kad bebas dalam nama fail

Gunakan fungsi PHP glob() untuk mencari fail berdasarkan aksara kad bebas dalam nama fail

PHPz
PHPzasal
2023-06-27 11:16:291638semak imbas

Semasa memproses fail, kami sering menghadapi situasi di mana kami perlu mencari fail tertentu. Jika bilangan fail kecil, carian manual boleh digunakan. Walau bagaimanapun, jika sejumlah besar fail terlibat, carian manual menjadi sangat menggembirakan. Pada masa ini, fungsi berguna berguna - fungsi glob(). Fungsi

glob() ialah fungsi yang sangat praktikal dalam PHP, yang membolehkan kami mencari fail dan direktori dengan menentukan aksara kad bebas. Fungsi glob() juga boleh mengisih dan menapis fail yang ditemui melalui pelbagai parameter, membolehkan kami mencari fail yang kami perlukan dengan cepat di antara sejumlah besar fail.

Di bawah, kita mulakan dengan penggunaan asas fungsi dan secara beransur-ansur memperkenalkan cara menggunakan fungsi glob(). Penggunaan asas fungsi

glob()

glob() adalah sangat mudah Ia hanya mempunyai satu parameter - aksara kad bebas yang mewakili fail yang perlu dicari. Berikut ialah contoh:

$files = glob('/path/to/files/*.jpg');

Watak kad bebas dalam contoh ini ialah "*.jpg", yang bermaksud untuk mencari semua fail dengan akhiran ".jpg" dalam direktori /path/to/files/. Hasil yang ditemui akan dikembalikan dalam bentuk tatasusunan.

Jika kita ingin mencari semua fail dan subdirektori dalam direktori tertentu, kita boleh menggunakan kad bebas "**":

$files = glob('/path/to/files/**');

Dengan cara ini kita boleh mencari semua fail dan direktori dalam direktori /path/to/files/ , termasuk fail subdirektori dan direktori di bawah.

Selain itu, kami juga boleh menggunakan kurungan segi empat sama dalam kad bebas untuk menentukan set aksara:

$files = glob('/path/to/files/[abc]*');

Dengan cara ini anda boleh mencari semua fail bermula dengan "a", "b" atau "c".

Penggunaan lanjutan fungsi glob()

Penggunaan asas fungsi glob() diperkenalkan di atas. Walau bagaimanapun, kami juga boleh menetapkan parameter untuk mengisih dan menapis hasil yang ditemui.

Tetapkan kaedah pengisihan

Dengan menetapkan parameter kedua (menunjukkan mod pengisihan), kita boleh mengisih hasil yang ditemui. Berikut ialah beberapa mod pengisihan yang biasa digunakan:

  • GLOB_NOSORT: Mod pengisihan lalai, tiada pengisihan dilakukan.
  • GLOB_NOCHECK: Tiada semakan ralat.
  • GLOB_NOCASE: Tidak sensitif huruf besar.
  • GLOB_BRACE: Dayakan pengembangan pendakap, anda boleh menggunakan pendakap dalam kad bebas.
  • GLOB_ONLYDIR: Hanya cari direktori.
  • GLOB_ERR: Hentikan carian jika ralat berlaku.

Sebagai contoh, jika kita ingin mengisih semua fail dengan akhiran ".jpg" dalam susunan terbalik mengikut nama, kita boleh menggunakan kod berikut:

$files = glob('/path/to/files/*.jpg', GLOB_NOSORT|GLOB_NOCHECK);
rsort($files);

Dalam contoh ini, kita menggunakan dua pemalar GLOB_NOSORT dan GLOB_NOCHECK untuk menetapkan kaedah pengasingan.

Tetapkan penapis

Dengan menetapkan parameter ketiga (menunjukkan penapis), kami boleh menapis hasil yang ditemui. Berikut ialah beberapa penapis yang biasa digunakan:

  • GLOB_MARK: Tambahkan "/" pada hasil carian untuk menunjukkan direktori.
  • GLOB_NOSORT: Tiada pengisihan.
  • GLOB_ONLYDIR: Hanya cari direktori.
  • GLOB_ERR: Hentikan carian jika ralat berlaku.
  • GLOB_BRACE: Dayakan pengembangan pendakap, anda boleh menggunakan pendakap dalam kad bebas.
  • GLOB_NOESCAPE: Jika dihidupkan, "" dalam aksara kad bebas tidak akan terlepas.
  • GLOB_NOCHECK: Tiada semakan ralat.
  • GLOB_NOCASE: Nama fail tidak sensitif huruf besar.

Sebagai contoh, jika kita hanya perlu mencari fail dengan saiz 100MB atau kurang, kita boleh menggunakan kod berikut:

$files = glob('/path/to/files/*.*');
array_filter($files, function($file) {
  return filesize($file) <= 100 * 1024 * 1024;
});

Dalam contoh ini, kita menggunakan fungsi array_filter() untuk menapis keputusan.

Ringkasan

Melalui contoh di atas, kami mempelajari cara menggunakan fungsi glob() untuk mencari fail dan direktori dalam PHP. Fungsi glob() adalah sangat mudah dan praktikal, serta mempunyai banyak parameter dan penggunaan, yang boleh mencapai carian dan pemprosesan fail yang lebih kompleks dan fleksibel. Dalam projek PHP, kita boleh memilih fungsi glob() untuk memproses sejumlah besar fail dan direktori dengan mudah dan cekap.

Atas ialah kandungan terperinci Gunakan fungsi PHP glob() untuk mencari fail berdasarkan aksara kad bebas dalam nama fail. 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