Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Anda Boleh Mengeluarkan Sambungan Fail Benar daripada Nama Fail?

Bagaimanakah Anda Boleh Mengeluarkan Sambungan Fail Benar daripada Nama Fail?

DDD
DDDasal
2024-11-02 03:22:02482semak imbas

How Can You Extract the True File Extension from a Filename?

Menentukan Sambungan Fail Sebenar

Ramai pembangun menghadapi keperluan untuk mengekstrak sambungan fail daripada nama fail. Walaupun adalah perkara biasa untuk menggunakan penyelesaian yang hanya menghuraikan rentetan nama fail dan memotong apa-apa sahaja selepas noktah (.), pendekatan ini boleh membawa kepada hasil yang tidak tepat, terutamanya jika nama fail mengandungi berbilang sambungan.

Sebagai contoh, perkara berikut skrip mungkin gagal mengalih keluar sambungan dengan betul:

  • /.[^.] $/
  • substr($filename, 0, (strlen ($filename)) - (strlen (strrchr ($nama fail,'.'))))

Kedua-dua skrip ini bergantung pada pembatas ('.') untuk mengasingkan sambungan. Walau bagaimanapun, jika nama fail termasuk rentetan seperti "This.is example of somestring", mereka hanya akan mengalih keluar noktah pertama dan menghasilkan "This" dan bukannya hasil yang diingini, "somestring."

Menggunakan pathinfo() untuk Penyingkiran Sambungan Tepat

Untuk mengelakkan penyelewengan tersebut, disyorkan untuk memanfaatkan fungsi pathinfo() yang disediakan oleh PHP. Fungsi ini menawarkan kaedah yang mantap untuk mendapatkan pelbagai maklumat tentang laluan fail, termasuk nama fail dan sambungannya.

Pertimbangkan contoh berikut:

$filename = pathinfo('filename.md.txt', PATHINFO_FILENAME); // returns 'filename.md'

Dengan menentukan PATHINFO_FILENAME sebagai parameter kedua, pathinfo () mengasingkan bahagian nama fail laluan yang diberikan, termasuk sebarang sambungan. Seperti yang ditunjukkan di atas, jika nama fail mengandungi berbilang sambungan, pathinfo() akan mengekstrak sambungan sebenar dengan betul.

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mengeluarkan Sambungan Fail Benar daripada 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