/e 변경자는 preg_replace()가
replacement 인수를 참조 치환을 하고 PHP
코드로 취급하도록 합니다. 팁: replacement가
정상적인 PHP 코드 문자열을 가지게 하십시오. 그렇지 않으면, PHP는
preg_replace()를 포함하는 줄에서 해석 오류를
일으킵니다.
replacement
치환할 문자열이나 문자열을 가진 배열. 이 인수가 문자열이고
pattern 인수가 배열이면, 모든 패턴은 해당
문자열로 치환됩니다. pattern과
replacement 인수가 모두 배열이면, 각
pattern은 해당하는
replacement로 치환됩니다.
pattern 배열보다
replacement 배열보다 적은 원소를 가지고 있으면,
남는 pattern은 빈 문자열로 치환됩니다.
replacement는
\\n나 (PHP 4.0.4부터)
$n 형태의 참조를 포함할
수 있습니다. 그러한 모든 참조는 n번째로
잡은 괄호 패턴으로 대체됩니다. n은 0에서
99까지 가능하고, \\0나 $0는
전체 패턴에 매치한 텍스트를 의미합니다. 괄호를 여는것은 서브패턴을
포함하여 왼쪽에서 오른쪽(1로부터 시작)으로 카운트합니다. replacement에
백슬래시를 사용할 때는, 이중으로 해야 합니다. ("\\\\"
PHP 문자열)
역참조 바로 뒤에 다른 숫자가 따라오는 패턴을 사용할 때는(즉, 매치된
패턴 바로 뒤에 수 문자가 위치), \\1 식의 역참조를
사용할 수 없습니다. 예를 들면, \\11은
preg_replace()에서 문자 1이
따라오는 역참조 \\1인지, 역참조
\\1인지 구분할 수 없습니다. 이 경우, 해결책은
\${1}1를 사용합니다. 이는 독립된 역참조
$1를 작성하고, 1을 문자로
남겨놓습니다.
e 변경자를 사용할 때, 이 함수는 역참조로 치환한
문자열에서 몇몇 문자(', ",
\, NULL)를 이스케이프합니다. 이는 홑따옴표나
곁따옴표로 이루어진 역참조 사용에서 구문 오류를 막기 위해서
이루어집니다. (예. 'strlen(\'$1\')+strlen("$2")')
PHP의 문자열 구문을
확인하여 문자열이 어떻게 해석되고 보여지는지 정확히 이해할 필요가
있습니다.
subject
검색 치환할 문자열이나 문자열을 가진 배열.
subject가 배열이면, 검색 치환은 모든
subject에 이루어지고, 반환값도 배열이 됩니다.
limit
각 subject 문자열에 대한 각 패턴의 최대 치환수.
기본값은 -1. (무제한)
count
지정하면, 이 변수는 치환이 일어난 횟수로 채워집니다.
반환값
preg_replace()는 subject 인수엣
따라서 배열이나 문자열을 반환합니다.
매치가 발견되면 새 subject를 반환하고, 그렇지 않으면
변경되지 않은 subject를 반환합니다. 오류가 발생하면
NULL을 반환합니다.
pattern과 replacement에
배열을 사용할 때, 키는 배열에 나타난 순서대로 처리합니다. 동일한 숫자
인덱스 순서를 가질 필요가 없습니다. 어떤
pattern이 replacement로
치환할 지 인덱스로 정한다면, preg_replace()를 호출하기
전에 각 배열에 ksort()를 수행해야 합니다.