URI '/'(slash) 중복 처리
URI를 처리하다보면 또는 문자열 처리를 하다보면 '/' (slash)를 사용자(또는 동료 개발자)가 중복으로 입력하는 경우가 종종 생긴다. 실수 또는 string merge 등등의 경우에 경로 끝에 / 처리하고 붙이는 string 선두에 / 이 있다던지..
어쨌든 중복된 / 를 정규식을 이용하여 없애려고 한다.
소스코드
<?php
// '/' 중복 미처리
$request_uri = "//api////device//status";
var_dump($request_uri);
// '/' 중복 처리
$request_uri = "//api////device//status";
$request_uri = preg_replace('#//+#', '/', $request_uri);
var_dump($request_uri);
?>
결과
string(23) "//api////device//status"
string(18) "/api/device/status"
정규패턴에서 나타내는 #//+# 은
# : escape character 를 있는 그대로 사용한다 라는 의미. /를 \/ 이렇게 표현하지 않아도 되도록..
+ : multiple 이란 의미, {//, }과 같고 //, ////, //////, ... 같이 // 와 반복하여 매칭한다.
즉, / 가 1개가 남을때까지 반복 수행한다.
위의 방식을 응용하면 꼭 / 가 아니더라도 다른 문자의 치환에도 활용이 가능하다.
끝.
'IT > programming' 카테고리의 다른 글
[C/C++] C++ string ltrim, rtrim, trim (2) | 2022.03.23 |
---|---|
[PHP] 변수명으로 함수 호출 / function_exists() (2) | 2022.03.04 |
[PHP] nested JSON key 추출 / 재귀함수 활용, recursive call (4) | 2022.03.03 |
[C++] 프로그래머스, 베스트앨범 (0) | 2022.02.23 |
[C++] 프로그래머스, 더 맵게 (2) | 2022.02.16 |
댓글