Nếu bạn có một tên tệp mà bạn cần xóa phần mở rộng bằng PHP, thì có một số cách để thực hiện việc đó. Đây là ba cách, với một số điểm chuẩn
Sử dụng thông tin đường dẫn
Hàm pathinfo[] trả về một mảng chứa tên thư mục, tên cơ sở, phần mở rộng và tên tệp. Ngoài ra, bạn có thể chuyển cho nó một trong các hằng số PATHINFO_ và chỉ cần trả về phần đó của tên tệp đầy đủ
$filename = 'filename.html'; $without_extension = pathinfo[$filename, PATHINFO_FILENAME];
Nếu tên tệp chứa đường dẫn đầy đủ, thì chỉ tên tệp không có phần mở rộng được trả về
Sử dụng tên cơ sở
Nếu phần mở rộng được biết và giống nhau đối với tất cả các tên tệp, bạn có thể chuyển tham số tùy chọn thứ hai cho tên cơ sở [] để yêu cầu nó loại bỏ phần mở rộng đó khỏi tên tệp
$filename = 'filename.html'; $without_extension = basename[$filename, '.html'];
Nếu tên tệp chứa đường dẫn đầy đủ, thì chỉ tên tệp không có phần mở rộng được trả về
Sử dụng chất nền và strrpos
$filename = 'filename.html'; $without_extension = substr[$filename, 0, strrpos[$filename, "."]];
Nếu tên tệp chứa đường dẫn đầy đủ, thì đường dẫn đầy đủ và tên tệp không có phần mở rộng sẽ được trả về. Bạn cũng có thể đặt tên cơ sở[] để thoát khỏi đường dẫn nếu cần [e. g. tên cơ sở[chất nền[$tên tệp, 0, strrpos[$tên tệp, ". "]]]] mặc dù nó chậm hơn so với sử dụng pathinfo
điểm chuẩn
Chạy từng cái này trong một vòng lặp 10.000.000 lần trên máy Mac của tôi với PHP 5. 4
thông tin đường dẫn. 10. 13 giây
tên cơ sở. 7. 87 giây
substr/strpos. 6. 05 giây
tên cơ sở[substr/strrpos]. 11. 98 giây
Nếu tên tệp không chứa đường dẫn đầy đủ hoặc nếu có thì tùy chọn substr/strrpos có vẻ là nhanh nhất
Nếu tên tệp chứa đường dẫn và bạn không muốn đường dẫn nhưng biết phần mở rộng bạn muốn xóa là gì, thì tên cơ sở có vẻ là nhanh nhất
Nếu tên tệp chứa đường dẫn, bạn không muốn đường dẫn và bạn không biết phần mở rộng là gì, thì hãy sử dụng tùy chọn pathinfo[]
Phần kết luận
Sẽ có nhiều cách khác để thực hiện việc này và một số cách có thể nhanh hơn. Trong nhiều trường hợp, tốc độ có lẽ không thực sự quan trọng lắm [rốt cuộc thì 10 giây để chạy pathinfo là 10 triệu lần];
html3 được sử dụng để lấy phần mở rộng của tệp nếu có nhiều hơn một phần mở rộng với đường dẫn đã cho thì nó sẽ chỉ trả về phần mở rộng cuối cùng
html4 được sử dụng để lấy tên tệp không có phần mở rộng. Trong phương thức tên cơ sở, hậu tố tham số thứ hai chỉ định phần mở rộng là tùy chọn nhưng nếu bạn chỉ cần lấy tên tệp thì bạn sẽ phải chuyển phần mở rộng làm đối số thứ hai trong phương thức này
html5
html6
html7
html8
html9
html0
html1
html2
Trong bài viết này, chúng ta sẽ xem cách trích xuất phần mở rộng tên tệp trong PHP, cùng với việc hiểu cách triển khai chúng thông qua các ví dụ. Có một số cách khác nhau để trích xuất phần mở rộng từ tên tệp bằng PHP, được đưa ra bên dưới
Sử dụng hàm pathinfo[]. Hàm này trả về thông tin về một tệp. Nếu tham số tùy chọn thứ hai bị bỏ qua, một mảng kết hợp chứa dirname, basename, extension và tên tệp sẽ được trả về. Nếu tham số thứ hai là đúng, nó sẽ trả về dữ liệu cụ thể
Thí dụ. Ví dụ này mô tả việc sử dụng hàm pathinfo[] trả về thông tin về một đường dẫn bằng cách sử dụng một mảng kết hợp hoặc một chuỗi.
PHP
html3
html4
html5
html6
html7
html0
html4
html2
html6
html4
html5
html5
html7
html4
html9
html2
html0
html2
Đầu ra
html
Sử dụng hàm end[]. Nó làm bùng nổ biến tệp và lấy phần tử mảng cuối cùng làm phần mở rộng tệp. Hàm end[] trong PHP dùng để lấy phần tử cuối cùng của mảng
Thí dụ. Ví dụ này mô tả cách sử dụng hàm end[] dùng để tìm phần tử cuối cùng của mảng đã cho
PHP
html3
html4
html5
html6
html7
html0
html4
html0
html6
html2
html5
html4
html5
html5
html7
html4
html2
html6
html1
html5
html0
html7
html4
html9
html2
html0
html2
Đầu ra
html
Sử dụng các hàm substr[] và strrchr[]
- chất nền[]. Một phần của chuỗi được trả về
- strchr[]. Lần xuất hiện cuối cùng của một chuỗi bên trong một chuỗi khác được xác định
Thí dụ. Ví dụ này sử dụng cả hàm substr[] và hàm strchr[].
PHP
html3
html4
html5
html6
html7
html0
html4
html2
html6
html39
html5
html41
html5
html5
html5
html4
html46
html4
html9
html2
html0
html2
Đầu ra
html
Sử dụng hàm strrpos[]. Chức năng này được sử dụng để tìm vị trí xuất hiện cuối cùng của một ‘. ’ trong tên tệp và tăng vị trí tệp lên 1 để phát nổ chuỗi [. ]
Thí dụ. Ví dụ này mô tả cách sử dụng hàm strrpos[] để tìm vị trí xuất hiện cuối cùng của một chuỗi trong một chuỗi khác.
PHP
html3
html4
html5
html6
html7
html0
html4
html2
html6
html39
html5
html5
html5
html65
html5
html5
html5
html4
html70
html4
html9
html2
html0
html2
Đầu ra
html
Sử dụng hàm preg_replace[]. Sử dụng các biểu thức chính quy như thay thế và tìm kiếm. Tham số đầu tiên của hàm này là mẫu tìm kiếm, tham số thứ hai $1 là tham chiếu đến bất kỳ thứ gì khớp với tham số đầu tiên [. *] và tham số thứ ba là tên tệp
Ví dụ. Ví dụ này sử dụng hàm preg_replace[] để thực hiện một biểu thức chính quy để tìm kiếm và thay thế nội dung