39 for ($i = $len - 1; $i >= 0; $i--) {
41 if ($i % 2 == $parity) {
48 return $sum % 10 == 0;
61 $siren = trim($siren);
62 $siren = preg_replace(
'/(\s)/',
'', $siren);
64 if (!is_numeric($siren) ||
dol_strlen($siren) != 9) {
81 $siret = trim($siret);
82 $siret = preg_replace(
'/(\s)/',
'', $siret);
84 if (!is_numeric($siret) ||
dol_strlen($siret) != 14) {
90 } elseif ((substr($siret, 0, 9) ==
"356000000") && (array_sum(str_split($siret)) % 5 == 0)) {
114 $str = preg_replace(
'/(\s)/',
'', $str);
116 if (preg_match(
'/(^[0-9]{9}$)/', $str)) {
135 $str = preg_replace(
'/(\s)/',
'', $str);
137 if (preg_match(
'/(^[0-9]{15}$)/', $str)) {
157 $str = preg_replace(
'/(\s)/',
'', $str);
159 if (preg_match(
'/(^[0-1]{1}[0-9]{3}\.[0-9]{3}\.[0-9]{3}$)/', $str)) {
180 $str = preg_replace(
'/(\s)/',
'', $str);
181 $str = strtoupper($str);
184 if (!preg_match(
'/((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)/', $str)) {
189 for ($i = 0; $i < 9; $i++) {
190 $num[$i] = substr($str, $i, 1);
194 if (preg_match(
'/(^[0-9]{8}[A-Z]{1}$)/', $str)) {
195 if ($num[8] == substr(
'TRWAGMYFPDXBNJZSQVHLCKE', (
int) substr($str, 0, 8) % 23, 1)) {
203 $sum = (int) $num[2] + (
int) $num[4] + (int) $num[6];
204 for ($i = 1; $i < 8; $i += 2) {
205 $sum += intval(substr((
string) (2 * (
int) $num[$i]), 0, 1)) + intval(substr((
string) (2 * (
int) $num[$i]), 1, 1));
207 $n = 10 - (int) substr((
string) $sum, strlen((
string) $sum) - 1, 1);
210 if (preg_match(
'/^[KLM]{1}/', $str)) {
211 if ($num[8] == chr(64 + $n) || $num[8] == substr(
'TRWAGMYFPDXBNJZSQVHLCKE', (
int) substr($str, 1, 8) % 23, 1)) {
219 if (preg_match(
'/^[ABCDEFGHJNPQRSUVW]{1}/', $str)) {
220 if ($num[8] == chr(64 + $n) || $num[8] == substr((
string) $n, strlen((
string) $n) - 1, 1)) {
228 if (preg_match(
'/^[T]{1}/', $str)) {
229 if ($num[8] == preg_match(
'/^[T]{1}[A-Z0-9]{8}$/', $str)) {
237 if (preg_match(
'/^[XYZ]{1}/', $str)) {
238 if ($num[8] == substr(
'TRWAGMYFPDXBNJZSQVHLCKE', (
int) substr(str_replace(array(
'X',
'Y',
'Z'), array(
'0',
'1',
'2'), $str), 0, 8) % 23, 1)) {
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
isValidSiren($siren)
Check the syntax validity of a SIREN.
isValidLuhn($str)
Check if a string passes the Luhn algorithm test.
isValidTinForPT($str)
Check the syntax validity of a Portuguese (PT) Tax Identification Number (TIN).
isValidSiret($siret)
Check the syntax validity of a SIRET.
isValidTinForES($str)
Check the syntax validity of a Spanish (ES) Tax Identification Number (TIN), where:
isValidTinForBE($str)
Check the syntax validity of a Belgium (BE) Tax Identification Number (TIN).
isValidTinForDZ($str)
Check the syntax validity of an Algerian (DZ) Tax Identification Number (TIN).