한다고 가정 $의 contry가 '드'또는 '에서'입니다.
나는 언어가 독일어 생각 ('드')
그래서이 같은 로케일 얻을 수 있습니다 :
$validator = new Zend_Validate_PostCode('de_' . strtoupper($contry));
또는
:이 같은 검증을 사용할 수 있습니다
$locale = new Zend_Locale('de_' . strtoupper($contry));
을
$validator = new Zend_Validate_PostCode($locale);
편집 1
댓글 :
지역 만있는 경우 로캘을 사용할 수 없습니다.
예를 들어 지역이 'et'
인 경우 로케일이 'aa_ET'
또는 'am_ET'
인지 알 수 없습니다.
그래서 더 나은 솔루션은 POST에서 좋은 가치를 얻기 위해 목록을 수정하는 것입니다. 당신 그냥이 검증 Zend_Validate_PostCode
는 방법이있다하려는 경우 예를 들어
은 검증 후
Edit2가'zw'
대신 'en_ZW'
을 넣어.
사실 각 로컬 xx_XX는 언어와 지역을 의미하며 동일한 지역의 모든 언어에는 동일한 형식 우편 번호가 있습니다.
$contry = 'at';
$list_locale = Zend_Locale::getLocaleList();
$contry_caps = strtoupper($contry);
foreach($list_locale as $locale_str => $bool){
$locale_obj = new Zend_Locale($locale_str);
if ($contry_caps == $locale_obj->getRegion()){
$locale = $locale_str;
break;
}
}
$validator = new Zend_Validate_PostCode($locale);
그러나, 그 젠드 (내가 사용하는 버전은 1.12.6입니다)에 정의 된 우편 번호가없는 지역을 SOMES주의 :
다음은 유효성 검사기를 회복 코드입니다.
001
AE
EH
LY
PS
QA
YE
BT
150
AG
BS
BZ
DM
FJ
GD
GI
GM
GY
JM
KI
KN
KY
LC
MW
SB
SL
SS
TT
UM
VC
VG
WS
419
BO
CO
CU
EA
IC
PA
PE
SV
IR
BF
BJ
BL
CI
GA
MF
KP
MM
AW
CW
SR
SX
ST
TL
AL
VN
그게 제가 찾고있는 것이죠, 고맙습니다. – andrepolo