Verify if brazilian cnpj if valid
<?php
function validateCNPJ($cnpj)
{
$cnpj = preg_replace('/[^0-9]/', '', (string) $cnpj);
if (strlen($cnpj) != 14) {
return false;
}
for ($i = 0, $j = 5, $sum = 0; $i < 12; $i++) {
$sum += $cnpj{$i} * $j;
$j = ($j == 2) ? 9 : $j - 1;
}
$left = $sum % 11;
if ($cnpj{12} != ($left < 2 ? 0 : 11 - $left)) {
return false;
}
for ($i = 0, $j = 6, $sum = 0; $i < 13; $i++) {
$sum += $cnpj{$i} * $j;
$j = ($j == 2) ? 9 : $j - 1;
}
$left = $sum % 11;
return $cnpj{13} == ($left < 2 ? 0 : 11 - $left);
}