Hapus Trailing Slash Dari String PHP


101

Apakah mungkin untuk menghapus garis miring /dari string menggunakan PHP?

Jawaban:


235

Tentu saja, cukup periksa apakah karakter terakhir adalah garis miring dan kemudian nuklir yang itu.

if(substr($string, -1) == '/') {
    $string = substr($string, 0, -1);
}

Opsi lain (mungkin lebih baik) akan menggunakan rtrim()- yang ini menghapus semua garis miring yang tertinggal:

$string = rtrim($string, '/');

Saya juga menyarankan menggunakan DIRECTORY_SEPARATORalih-alih '/' jika menggunakan jalur file sehingga berfungsi di semua platform.
— Brad

61

Ini menghapus garis miring tertinggal:

$str = rtrim($str, '/');

13
Perhatikan bahwa ini menghapus semua garis miring yang tertinggal.
— Gumbo

24

Sudah lama diterima, namun dalam pencarian terkait saya, saya tersandung di sini, dan menambahkan "kelengkapan"; rtrim()bagus, namun diterapkan seperti ini:

$string = rtrim($string, '/\\'); //strip both forward and back slashes

Ini memastikan portabilitas dari * nix ke Windows , karena saya menganggap pertanyaan ini berkaitan dengan cara menangani jalur.


1
menarik! Namun pada akhirnya saya tersandung di sini tentang rute , bukan jalur
— Félix Gagnon-Grenier

1
@ FélixGagnon-Grenier Jawabannya agak lancang sehubungan dengan jalan; OP mungkin memiliki alasan yang sama sekali berbeda. Karena "rute" biasanya bertindak atas "jalur" ( dari beberapa jenis ), semuanya sama pada akhirnya :-)
— Dan Lugg

Dalam hal Op memang ingin menghapus pemisah direktori tambahan dari jalur, gunakan konstanta DIRECTORY_SEPARATORsebagai ganti '/\\'.
— Jens

@ Jens Saya setuju, namun karena PHP mendukung * nix dan kasus sudut jalur Windows mungkin tidak terpotong.
— Dan Lugg

@NorthbornDesign: Apakah Anda punya contoh? Maksud Anda memangkas jalur * nix di Windows, dan sebaliknya, bukan hanya jalur asli?
— Jens

4

rtrim Gunakan rtrim karena itu menghormati string yang tidak diakhiri dengan garis miring


2
Kecuali bahwa itu tidak benar-benar menghapus garis miring, tetapi menghapus sebuah string.
— pengguna502515

baik saya melewatkan bagian trailing dalam pertanyaan ... Saya membuat kesalahan dan saya secara khusus menulis bahwa itu menghapus semua garis miring
— Breezer

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.