✏️ 正在编辑: Cnpj.php
路径:
/srv/systems_dir/yuppiecred/application/Modules/Core/Service/InputValidators/Cnpj.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php namespace Modules\Core\Service\InputValidators; use Modules\Core\Exception\CpfCnpjInvalidoException; class Cnpj { /** * @param string $cpf * @return bool */ public static function validar(string $cpf) { self::cnpjValido($cpf); return true; } /** * @param $cnpj */ public static function cnpjValido($cnpj): void { $cnpj = (string) preg_replace('/[^0-9]/', '', $cnpj); $cnpjOriginal = $cnpj; $primeirosNumerosCnpj = substr($cnpj, 0, 12); $primeiroCalculo = self::multiplicaCnpj($primeirosNumerosCnpj); $primeiroDigito = ($primeiroCalculo % 11) < 2 ? 0 : 11 - ($primeiroCalculo % 11); $primeirosNumerosCnpj .= $primeiroDigito; $segundoCalculo = self::multiplicaCnpj($primeirosNumerosCnpj, 6); $segundoDigito = ($segundoCalculo % 11) < 2 ? 0 : 11 - ($segundoCalculo % 11); $cnpj = $primeirosNumerosCnpj . $segundoDigito; if ($cnpj !== $cnpjOriginal) { throw new CpfCnpjInvalidoException(); } } /** * @param $cnpj * @param int $posicao * @return float|int|mixed */ public static function multiplicaCnpj($cnpj, $posicao = 5) { $calculo = 0; for ($i = 0; $i < strlen($cnpj); $i++) { $calculo = $calculo + ( $cnpj[$i] * $posicao ); $posicao--; if ($posicao < 2) { $posicao = 9; } } return $calculo; } }
💾 保存文件
← 返回文件管理器