채택완료

g5_path()에서

2014-06-06 (금) 06:32:35 6,683
$tilde_remove = preg_replace('/^\/\~[^\/]+(.*)$/', '$1', $_SERVER['SCRIPT_NAME']);

위의 라인에서 두번째 파라미터인 '$1'의 의미가 뭐죠?
$1라는 변수가 설정된 것도 아닌것 같은데 말입니다.

|

답변 1개 / 댓글 2개

채택된 답변
+20 포인트
첫번째 괄호 안의 문자들을 가르킵니다.
예를 들어 
$a = "/~abc/de";
$tilde_remove = preg_replace('/^\/\~[^\/]+(.*)$/', '$1', $a);
echo $tilde_remove;

결과값은 /de
맨 뒷부분에 나오는 " /이하" 문자열을 구하는 것이겠죠.

답변에 대한 댓글 2개

아, subpattern에 match 된 문자열이 $1로 들어가는 군요.
네이비칼라님 답변보고 PHP manual에서 preg_replace() 를 읽어봤는데, 설명이 조금 복잡하네요.
전체 pattern match가 $0으로 들어가고, subpattern match는 순서대로 $1, $2... 이렇게 들어간다고 생각하면 맞나요?
제가 테스트해보니 그렇네요.
감사합니다.

답변을 작성하려면 로그인이 필요합니다.