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.