IsoCodes\Cif::validate PHP Метод

validate() публичный статический Метод

CIF validation.
public static validate ( string $cif ) : boolean
$cif string The CIF
Результат boolean
    public static function validate($cif)
    {
        $cifCodes = 'JABCDEFGHI';
        if (9 !== strlen($cif)) {
            return false;
        }
        $cif = strtoupper(trim($cif));
        $sum = (string) Nif::getCifSum($cif);
        $n = (10 - substr($sum, -1)) % 10;
        if (preg_match('/^[ABCDEFGHJKNPQRSUVW]{1}/', $cif)) {
            if (in_array($cif[0], array('A', 'B', 'E', 'H'))) {
                // Numerico
                return $cif[8] == $n;
            } elseif (in_array($cif[0], array('K', 'P', 'Q', 'S'))) {
                // Letras
                return $cif[8] == $cifCodes[$n];
            } else {
                // Alfanumérico
                if (is_numeric($cif[8])) {
                    return $cif[8] == $n;
                } else {
                    return $cif[8] == $cifCodes[$n];
                }
            }
        }
        return false;
    }

Usage Example

Пример #1
0
 /**
  * testInvalidCif
  *
  * @param string $cif
  *
  * @dataProvider getInvalidCifs
  *
  * @return void
  */
 public function testInvalidCif($cif)
 {
     $this->assertFalse(Cif::validate($cif));
 }