2013-02-16 2 views
0

정확히 어떻게 말 할 지 모르겠지만 예제를 사용하겠습니다.PHP - 템플릿을위한 맞춤 변수 만들기

//[$var:Username|n] will print username with n length 
$myText = 'The participants are [$var:Username|10], [$var:Username|8], and [$var:Username|6]'; 
$username = array('Alexandrite', 'Maximillian', 'Angelina'); 
$result = someFunction('[$var:Username|n]', $username, $myText); 
echo $result; 
//The participants are Alexandrit, Maximill, and Angeli 

어떻게하면 좋을까요? 어쩌면 preg_replace를 사용하고 있을까요?

답변

3

왜 이렇게해야하는지 알고 싶습니다. 관계 없음 :

preg_replace_callback('/\[\$var:Username\|(\d+)\]/', function ($match) 
    use (&$count, $username 
) { 
    return substr($username[$count++], 0, $match[1]); 
}, $myText); 
+0

감사합니다. 사용자가 변수를 사용하여 템플릿을 만들 수있는 텍스트 편집기를 만들고 다음 단계에서 변수 값을 선택한 다음 최종 결과로 템플릿에 선택한 값을 넣는이 함수가 필요합니다. 아, 결과는 "참가자는 Maximill, Angeli"입니다. Alexandrit는 없습니다. –

+0

아, 문제가 발견되었습니다. 먼저 count 변수가 0이 아닌 값이 비어 있습니다. 0으로 설정하면됩니다. preg_replace_callback이 있는지조차 알지 못해서 정말 도움이되었습니다. 고맙습니다. :) –

+0

@ v1n_vampire 아 죄송합니다.'$ count = 0'을 추가해야합니다. 내 테스트 코드에서 그랬어. –

관련 문제