Dizge PHP'den Sondaki Eğik Çizgi Kaldır


101

/PHP kullanarak bir dizeden sondaki eğik çizgiyi kaldırmak mümkün müdür ?

Yanıtlar:


235

Elbette, son karakterin bir bölü çizgisi olup olmadığını kontrol edin ve ardından onu nükleer.

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

Başka bir (muhtemelen daha iyi) seçenek kullanmak olacaktır rtrim()- bu, sondaki tüm eğik çizgileri kaldırır :

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

Tüm platformlarda çalışması için dosya yollarını kullanmak DIRECTORY_SEPARATORyerine kullanmayı da öneririm '/'.
— Brad

61

Bu, sondaki eğik çizgileri kaldırır:

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

13
Bunun tüm eğik çizgileri kaldıracağını unutmayın.
— Gumbo

24

Uzun süredir kabul edildi, ancak ilgili aramalarımda burada tökezledim ve "bütünlük" için ekliyorum; rtrim()harika, ancak şu şekilde uygulandı:

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

Bu sorunun yollarla ilgili olduğunu varsaydığım için * nix'ten Windows'a taşınabilirlik sağlar .


1
ilginç! ancak sonumda burada yollarla değil, rotalarla ilgili tökezledim
— Félix Gagnon-Grenier

1
@ FélixGagnon-Grenier Cevap, yollarla ilgili bir şekilde küstahça; OP'nin tamamen farklı nedenleri olabilir. "Güzergahlar" genellikle "yollar" ( bir çeşit ) üzerinde hareket ettiğinden, sonunda hepsi aynı :-)
— Dan Lugg

İşlem Operatörünün bir yoldan bir sondaki dizin ayırıcısını gerçekten kaldırmak istemesi durumunda, DIRECTORY_SEPARATORbunun yerine sabiti kullanın '/\\'.
— Jens

@Jens'e katılıyorum, ancak PHP * nix'i desteklediğinden ve Windows yollarının köşe durumları kısaltılmayabilir.
— Dan Lugg

@NorthbornDesign: Bir örneğiniz var mı? Yalnızca yerel yolları değil, Windows'ta bir * nix yolunu ve bunun tersini mi kastediyorsunuz?
— Jens

4

rtrim rtrim kullanın, çünkü dizenin sonunda bir bölü çizgisi ile bitmez


2
Bunun dışında, sondaki eğik çizgileri gerçekten kaldırmaz, ancak bir dizeyi tırnaktan çıkarır.
— user502515

Peki sorunun sondaki kısmını kaçırdım ... Bir hata yaptım ve özellikle tüm eğik çizgileri kaldırdığını yazdım
— Breezer

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.