[PHP] 문자열에 포함된 다수의 특정 문자를 순차적으로 치환하기
문자열에 포함된 동일한 다수의 특정 문자를 순차적으로 치환하는 방법이다. 순차적으로 치환한다는 것의 의미가 불분명할 수 있는데.. 예를 들면 이런 것이다. a b a c d 문자열에서 a 를  a_1 b a_2 c d 로 치환하는 것이다. 설명을 자세히 할 능력이 없기 때문에 코드를 보자.
<?php
$string = 'test [form] string with [form] replace';
$form = '[ id : id_{{idx}} ]';
function replaceForm($form) {
    static $idx = 0;
    $idx++;
    return str_replace('{{idx}}', $idx, $form);
}
echo preg_replace_callback('#\[form\]#',
        function($match) use ($form) {
            return replaceForm($form);
        },
        $string);위 코드는 문자열에 포함된 [form] 문자를 [ id : id_1 ] 과 같은 형식으로 치환하여 출력한다. 결과는 아래와 같다.
test [ id : id_1 ] string with [ id : id_2 ] replace참고 : http://www.php.net/manual/en/function.preg-replace-callback.php
위의 예제를 수정하여 동일한 웹페이지에 다수의 [form] 문자열을 입력폼으로 치환하여 출력할 때 입력 필드의 id와 label의 for 를 각각 매치시켜줄 때 사용할 수 있다.
