Cách xóa tên tệp khỏi url trong php

Để chỉ lấy tên của tệp, cần xóa phần mở rộng khỏi tên tệp. Bạn có thể xóa phần mở rộng khỏi tên tệp bằng PHP. Có một số cách để xóa phần mở rộng khỏi chuỗi bằng PHP. Trong mã ví dụ sau, chúng tôi sẽ chỉ cho bạn tất cả các cách có thể để xóa phần mở rộng khỏi tên tệp và trích xuất tên gốc của tệp trong PHP

Sử dụng Biểu thức chính quy [RegEx].
Sử dụng mẫu RegEx để xóa phần mở rộng khỏi tên tệp bằng PHP.

$filename = 'filename.php';
$filename_without_ext = preg_replace['/\\.[^.\\s]{3,4}$/', '', $filename];

Sử dụng hàm substr[] và strrpos[].
Bạn có thể sử dụng các hàm

$filename = 'filename.php';
$filename_without_ext = basename[$filename, '.php'];
6 và
$filename = 'filename.php';
$filename_without_ext = basename[$filename, '.php'];
7 để truy xuất tên tệp không có phần mở rộng trong PHP.

$filename = 'filename.php';
$filename_without_ext = substr[$filename, 0, strrpos[$filename, "."]];

Sử dụng hàm pathinfo[].
Hàm PHP

$filename = 'filename.php';
$filename_without_ext = basename[$filename, '.php'];
8 trả về thông tin về đường dẫn tệp [tên thư mục, tên cơ sở, phần mở rộng và tên tệp] trong một mảng.

  • Bạn có thể sử dụng cờ PATHINFO_FILENAME để loại bỏ phần mở rộng và chỉ lấy tên tệp
$filename = 'filename.php';
$filename_without_ext = pathinfo[$filename, PATHINFO_FILENAME];

Sử dụng hàm basename[].
Hàm PHP

$filename = 'filename.php';
$filename_without_ext = basename[$filename, '.php'];
9 trả về tên tệp của đường dẫn.

  • Nếu bạn đã biết phần mở rộng, hãy chuyển nó vào tham số tùy chọn thứ hai để loại bỏ phần mở rộng đó khỏi tên tệp
$filename = 'filename.php';
$filename_without_ext = basename[$filename, '.php'];

Nên xóa các ký tự đặc biệt khỏi tên tệp và URL để đảm bảo an toàn. Khi một ứng dụng web tạo một tệp và URL động, sẽ thuận tiện khi chỉ sử dụng các ký tự và số để tránh các vấn đề về tính di động. Bạn có thể khử trùng chuỗi trước khi gán nó cho tên tệp hoặc sên URL

Đảm bảo lọc tất cả các ký tự không mong muốn khỏi tên tệp để đảm bảo an toàn cho URL và tên tệp. Hàm preg_replace[] trong PHP rất hữu ích để dọn sạch chuỗi tên tệp trong PHP. Đoạn mã ví dụ này cho phép xóa các ký tự không an toàn khỏi chuỗi và làm cho URL tên tệp an toàn bằng cách sử dụng PHP

basename [ $path, $suffix ]
0 là một hàm PHP tùy chỉnh giúp khử trùng chuỗi tên tệp đã cho và trả về một tên tệp sạch

Sử dụng hàm pathinfo[]. 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

cú pháp

thông tin đường dẫn [ $path, $options = PATHINFO_DIRNAME. PATHINFO_BASENAME. PATHINFO_EXTENSION. PATHINFO_FILENAME ]

Ngoài ra, nếu chỉ có một hằng số PATHINFO_ được truyền dưới dạng tham số thì nó chỉ trả về phần đó của tên tệp đầy đủ

Thí dụ




basename [ $path, $suffix ]
1

basename [ $path, $suffix ]
2

basename [ $path, $suffix ]
3

basename [ $path, $suffix ]
4
basename [ $path, $suffix ]
5
basename [ $path, $suffix ]
0
basename [ $path, $suffix ]
1

basename [ $path, $suffix ]
2

basename [ $path, $suffix ]
3

basename [ $path, $suffix ]
4
basename [ $path, $suffix ]
5
basename [ $path, $suffix ]
6
basename [ $path, $suffix ]
7
basename [ $path, $suffix ]
4
basename [ $path, $suffix ]
9

basename [ $path, $suffix ]
2

$filename = 'filename.php';
$filename_without_ext = substr[$filename, 0, strrpos[$filename, "."]];
11

$filename = 'filename.php';
$filename_without_ext = substr[$filename, 0, strrpos[$filename, "."]];
12
basename [ $path, $suffix ]
4
basename [ $path, $suffix ]
1

basename [ $path, $suffix ]
2

$filename = 'filename.php';
$filename_without_ext = substr[$filename, 0, strrpos[$filename, "."]];
16

đầu ra.

$filename = 'filename.php';
$filename_without_ext = substr[$filename, 0, strrpos[$filename, "."]];
1

Ghi chú. 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ó thể dễ dàng lấy đường dẫn duy nhất từ ​​đường dẫn đầy đủ đã cho [Đường dẫn có tên tệp] bằng cách sử dụng các hàm có sẵn của PHP như dirname[] và pathinfo[]

Giả sử con đường của bạn là D. /projects/Demo/storage/app/agency/files/6/62414f6a7a123-HIPAAPrivacy. pdf và bạn muốn lấy D. /projects/Demo/storage/app/agency/files/6/. Bạn có thể xóa tên tệp bằng hai ví dụ PHP bên dưới

Ví dụ với pathinfo[]

$filename = 'filename.php';
$filename_without_ext = substr[$filename, 0, strrpos[$filename, "."]];
7

Ví dụ với dirname[]

Nếu bạn luôn chuyển một đường dẫn có tên tệp, thì phương pháp này phù hợp, cuối cùng không có tên tệp, nó sẽ không thành công, bạn sẽ không nhận được kết quả như mong đợi, vì nó cung cấp cho bạn tên của thư mục mẹ

$filename = 'filename.php';
$filename_without_ext = substr[$filename, 0, strrpos[$filename, "."]];
8

Tôi hy vọng bạn thích bài đăng này, vui lòng bình luận bên dưới, đề xuất của bạn và các vấn đề nếu bạn gặp phải - chúng tôi ở đây để giải quyết vấn đề của bạn

Gần đây tôi muốn xóa các tiện ích mở rộng khỏi trang web của mình để làm cho các URL thân thiện hơn với người dùng và công cụ tìm kiếm. Tôi tình cờ xem được các hướng dẫn về cách xóa tiện ích mở rộng

basename [ $path, $suffix ]
1 khỏi trang PHP. Còn về
basename [ $path, $suffix ]
2 thì sao? . Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách thực hiện điều đó một cách dễ dàng, bằng cách chỉnh sửa tệp
basename [ $path, $suffix ]
3

Cái gì là. tập tin htaccess

Tệp

basename [ $path, $suffix ]
3 là tệp ASCII đơn giản mà bạn tạo bằng trình soạn thảo văn bản như Notepad hoặc TextEdit. Tệp cho phép máy chủ biết những thay đổi cấu hình cần thực hiện trên cơ sở từng thư mục

Xin lưu ý rằng

basename [ $path, $suffix ]
3 là tên đầy đủ của tệp. Nó không phải là
$filename = 'filename.php';
$filename_without_ext = substr[$filename, 0, strrpos[$filename, "."]];
91, nó chỉ đơn giản là
basename [ $path, $suffix ]
3

Các tệp

basename [ $path, $suffix ]
3 ảnh hưởng đến thư mục chứa chúng và tất cả các thư mục con [thư mục con]. Ví dụ: nếu có một tệp
basename [ $path, $suffix ]
3 nằm trong thư mục gốc của bạn là
$filename = 'filename.php';
$filename_without_ext = substr[$filename, 0, strrpos[$filename, "."]];
95, nó sẽ ảnh hưởng đến
$filename = 'filename.php';
$filename_without_ext = substr[$filename, 0, strrpos[$filename, "."]];
96,
$filename = 'filename.php';
$filename_without_ext = substr[$filename, 0, strrpos[$filename, "."]];
97, v.v.

Điều quan trọng cần nhớ là điều này có thể được bỏ qua. Nếu bạn không muốn một số lệnh

basename [ $path, $suffix ]
3 nhất định ảnh hưởng đến một thư mục cụ thể, hãy đặt một tệp
basename [ $path, $suffix ]
3 mới trong thư mục mà bạn không muốn bị ảnh hưởng bởi các thay đổi và xóa [các] lệnh cụ thể khỏi tệp mới

Đặc trưng

Với tệp

basename [ $path, $suffix ]
3, bạn có thể

  • Chuyển hướng người dùng đến trang khác
  • Mật khẩu bảo vệ một thư mục cụ thể
  • Chặn người dùng theo IP
  • Ngăn chặn liên kết nóng hình ảnh của bạn
  • Viết lại URL
  • Chỉ định Tài liệu Lỗi của riêng bạn

Trong hướng dẫn này, chúng tôi sẽ chỉ tập trung vào việc viết lại các URL

Xóa tiện ích mở rộng

Để xóa phần mở rộng

basename [ $path, $suffix ]
1 khỏi tệp PHP, ví dụ:
$filename = 'filename.php';
$filename_without_ext = pathinfo[$filename, PATHINFO_FILENAME];
32 thành
$filename = 'filename.php';
$filename_without_ext = pathinfo[$filename, PATHINFO_FILENAME];
33, bạn phải thêm đoạn mã sau vào tệp
basename [ $path, $suffix ]
3

$filename = 'filename.php';
$filename_without_ext = pathinfo[$filename, PATHINFO_FILENAME];
5

Nếu bạn muốn xóa phần mở rộng

basename [ $path, $suffix ]
2 khỏi tệp html, chẳng hạn như
$filename = 'filename.php';
$filename_without_ext = pathinfo[$filename, PATHINFO_FILENAME];
36 thành
$filename = 'filename.php';
$filename_without_ext = pathinfo[$filename, PATHINFO_FILENAME];
33, bạn chỉ cần thay đổi dòng cuối cùng từ mã ở trên để khớp với tên tệp

$filename = 'filename.php';
$filename_without_ext = substr[$filename, 0, strrpos[$filename, "."]];
9

Đó là nó. Bây giờ bạn có thể liên kết các trang bên trong tài liệu HTML mà không cần thêm phần mở rộng của trang. Ví dụ

$filename = 'filename.php';
$filename_without_ext = pathinfo[$filename, PATHINFO_FILENAME];
3

Thêm dấu gạch chéo ở cuối

Tôi nhận được nhiều yêu cầu hỏi cách thêm dấu gạch chéo ở cuối, ví dụ như.

$filename = 'filename.php';
$filename_without_ext = pathinfo[$filename, PATHINFO_FILENAME];
38

Bỏ qua đoạn mã đầu tiên và chèn mã bên dưới. Bốn dòng đầu tiên đề cập đến việc loại bỏ phần mở rộng và dòng tiếp theo, với việc bổ sung dấu gạch chéo và chuyển hướng

$filename = 'filename.php';
$filename_without_ext = basename[$filename, '.php'];
1

Liên kết đến tệp HTML hoặc PHP theo cách tương tự như được hiển thị ở trên. Đừng quên thay đổi mã nếu bạn muốn nó được áp dụng cho tệp HTML thay vì PHP

Một số người đã hỏi làm cách nào bạn có thể xóa tiện ích mở rộng khỏi cả tệp HTML và PHP. Tôi không có giải pháp cho điều đó. Tuy nhiên, bạn chỉ có thể thay đổi phần mở rộng của tệp HTML của mình từ

basename [ $path, $suffix ]
2 hoặc
$filename = 'filename.php';
$filename_without_ext = basename[$filename, '.php'];
10 thành
basename [ $path, $suffix ]
1 và thêm mã để xóa phần mở rộng
basename [ $path, $suffix ]
1

Sự kết luận

Đối với những người không có nhiều kinh nghiệm với các tệp

basename [ $path, $suffix ]
3, có một công cụ trực tuyến để tạo chúng. Nó rất hữu ích cho người dùng mới bắt đầu và dễ sử dụng

Người dùng GoDaddy chú ý. Để xóa tiện ích mở rộng, bạn cần bật

$filename = 'filename.php';
$filename_without_ext = basename[$filename, '.php'];
14 trước. Mã sẽ trông như thế này

$filename = 'filename.php';
$filename_without_ext = basename[$filename, '.php'];
4

Nếu bạn lo lắng rằng các công cụ tìm kiếm có thể lập chỉ mục các trang này là nội dung trùng lặp, hãy thêm thẻ meta

$filename = 'filename.php';
$filename_without_ext = basename[$filename, '.php'];
15 vào tệp HTML của bạn

Chủ Đề