Eliminar barra diagonal de cadena PHP


101

¿Es posible eliminar la barra inclinada final /de una cadena usando PHP?

Respuestas:


235

Claro que lo es, simplemente verifica si el último carácter es una barra y luego bombardea ese.

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

Otra opción (probablemente mejor) sería usar rtrim(), esta elimina todas las barras inclinadas:

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

También sugiero usar en DIRECTORY_SEPARATORlugar de '/' usar rutas de archivo para que funcione en todas las plataformas.
— Brad

61

Esto elimina las barras diagonales finales:

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

13
Tenga en cuenta que esto elimina todas las barras inclinadas.
— Gumbo

24

Acepté durante mucho tiempo, sin embargo, en mis búsquedas relacionadas tropecé aquí, y estoy agregando "integridad"; rtrim()es genial, sin embargo implementado así:

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

Garantiza la portabilidad de * nix a Windows , ya que supongo que esta pregunta se refiere a tratar con rutas.


1
¡interesante! sin embargo, por mi parte, tropecé aquí con respecto a las rutas , no a los caminos
— Félix Gagnon-Grenier

1
@ FélixGagnon-Grenier Bueno, la respuesta es algo presuntuosa con la preocupación por los caminos; el PO puede haber tenido razones completamente diferentes. Dado que las "rutas" suelen actuar en "rutas" ( de algún tipo ), al final todo es igual :-)
— Dan Lugg

En caso de que el Op quiera eliminar un separador de directorio final de una ruta, use la constante en DIRECTORY_SEPARATORlugar de '/\\'.
— Jens

@Jens Estoy de acuerdo, sin embargo, dado que PHP admite * nix y las esquinas de las rutas de Windows, es posible que no se recorten.
— Dan Lugg

@NorthbornDesign: ¿Tiene un ejemplo? ¿Te refieres a recortar una ruta * nix en Windows y viceversa, no solo rutas nativas?
— Jens

4

rtrim Use rtrim porque respeta que la cadena no termina con una barra diagonal


2
Excepto que en realidad no elimina las barras inclinadas, sino que quita las comillas de una cadena.
— user502515

bueno, me perdí la parte final de la pregunta ... Cometí un error y escribí específicamente que elimina todas las barras
— Breezer

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.