|
|
|
| может кто-нибудь помочь перевести несколько строк с ASP на PHP?
Private Function ValidVat(ByVal strAFM As String) As Boolean
Try
Dim fValidVat As Boolean
If Not (strAFM Like "#########") Then Return False
Dim b(8) As Char
b = strAFM.ToArray
fValidVat = ((((0 + 256 * _
Val(b(0)) + _
128 * Val(b(1)) + _
64 * Val(b(2)) + _
32 * Val(b(3)) + _
16 * Val(b(4)) + _
8 * Val(b(5)) + _
4 * Val(b(6)) + _
2 * Val(b(7))) Mod 11) Mod 10) = Val(b(8)))
Return fValidVat
Catch ex As Exception
Return False
End Try
Exit Function
End Function
|
| |
|
|
|
|
|
|
|
для: elenaki
(03.05.2011 в 16:22)
| | На PHP это должно выглядеть как-то так
<?php
function ValidVat($strAFM)
{
if(!preg_match("|^\d{9}$|", $strAFM)) return false;
$check = (((256 * $strAFM[0] +
128 * $strAFM[1] +
64 * $strAFM[2] +
32 * $strAFM[3] +
16 * $strAFM[4] +
8 * $strAFM[5] +
4 * $strAFM[6] +
2 * $strAFM[7]) % 11) % 10);
return $check == $strAFM[8];
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(03.05.2011 в 18:36)
| | спасибо. я уже дома. завтра на работе попробую. | |
|
|
|
|
|
|
|
для: elenaki
(03.05.2011 в 18:54)
| | ура! работает! кстати, это проверка греческого аналога ИНН. только в ИНН, насколько я помню, 10 цифр... | |
|
|
|
|
|
|
|
для: elenaki
(04.05.2011 в 12:11)
| | Любопытно, на всякий случай сошлюсь на тему, где подсчитывается контрольная сумма для российского страхового пенсионного страхования, вдруг кто-то наткнется на эту тему и ему потребуются российские реалии http://softtime.ru/forum/read.php?id_forum=1&id_theme=80115. | |
|
|
|
|
|
|
|
для: cheops
(03.05.2011 в 18:36)
| |
return $check == $strAFM[8];
|
А почему здесь стоит оператор сравнения? | |
|
|
|
|
|
|
|
для: ols
(04.05.2011 в 21:32)
| | Функция возвращает true или false в зависимости от того, правильно подсчитана контрольная сумма или нет. Эта контрольная сумма размещена в последнем элементе, с ним и нужно сравнивать полученный результат. | |
|
|
|