문자열 PHP에서 후행 슬래시 제거


101

/PHP를 사용하여 문자열에서 후행 슬래시를 제거 할 수 있습니까?

답변:


235

물론, 마지막 문자가 슬래시인지 확인한 다음 그 문자를 핵으로 만드십시오.

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

또 다른 (아마 더 나은) 옵션은 다음과 같이 모든 후행 슬래시를 rtrim()제거 하는 것입니다 .

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

또한 모든 플랫폼에서 작동하도록 파일 경로를 사용 하는 DIRECTORY_SEPARATOR대신 사용 하는 것이 좋습니다 '/'.
Brad

61

이것은 후행 슬래시를 제거합니다.

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

13
이렇게하면 모든 후행 슬래시가 제거 됩니다 .
Gumbo

24

오랫동안 받아 들여졌지만 관련 검색에서 나는 여기에서 우연히 발견되어 "완전성"을 추가하고 있습니다. rtrim()훌륭하지만 다음과 같이 구현됩니다.

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

이 질문이 경로 처리와 관련이 있다고 가정하므로 * nix 에서 Windows 로의 이식성을 보장합니다 .


1
흥미 롭군요! 그러나 내 말에 나는에 관한 여기 발견 경로 가 아닌 경로를
펠릭스 Gagnon의-Grenier의를

1
@ FélixGagnon-Grenier 글쎄요, 대답은 경로에 대한 우려와 함께 다소 주제 넘습니다. OP는 완전히 다른 이유를 가지고있을 수 있습니다. "경로"일반적으로 "경로"(행동 이후 어떤 종류의 )은 모든 :-) 결국 동일합니다
댄 Lugg

Op가 실제로 경로에서 후행 디렉터리 구분 기호를 제거하려는 경우 DIRECTORY_SEPARATOR대신 상수 를 사용하십시오 '/\\'.
Jens

@Jens 동의하지만 PHP는 * nix를 지원하고 Windows 경로 코너 케이스는 잘리지 않을 수 있습니다.
Dan Lugg

@NorthbornDesign : 예가 있습니까? Windows에서 * nix 경로를 트리밍하는 것을 의미합니까?
Jens

4

rtrim 문자열이 후행 슬래시로 끝나지 않기 때문에 rtrim을 사용합니다.


2
실제로 후행 슬래시를 제거하지는 않지만 문자열을 인용 해제합니다.
user502515 2010

글쎄, 나는 질문의 후행 부분을 놓쳤다 ... 나는 실수를 저질렀 고 특별히 모든 슬래시를 제거한다고 썼다
Breezer

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.