0
어떻게 역 참조와 함께 str_pad를 사용합니까? 내가 사용하는 방식으로, 작은 따옴표 사이의 문자를 역 참조 된 문자열이 아닌 문자로 읽습니다. 작은 따옴표를 이스케이프하면 오류가 반환됩니다.PHP : str_pad 및 역 참조
$y = 'CHG1234567';
$y = preg_replace ('~(((?:CHG|HD|TSK))([1-9][0-9]++))~', '${2}'.(str_pad('$3',10, 0, STR_PAD_LEFT)), $y);
echo $y;
# returns - CHG0000000- 15 digits
# i want - CHG00- 10 digits
솔루션 :
$y = preg_replace_callback ('~((?:CHG|HD|TSK))([1-9][0-9]++)~', function($m) { return $m[1] . str_pad($m[2], 10, '0', STR_PAD_LEFT);
}, $y);
감사합니다. 질문에 해결책을 게시했습니다. – user2001487