IsoCodes\Iswc::validate PHP Method

validate() public static method

public static validate ( mixed $iswc ) : boolean
$iswc mixed
return boolean
    public static function validate($iswc)
    {
        if (!boolval(preg_match('/^\\s*T[\\-.]?(\\d)(\\d)(\\d)[\\-.]?(\\d)(\\d)(\\d)[\\-.]?(\\d)(\\d)(\\d)[\\-.]?(\\d)\\s*$/i', $iswc))) {
            return false;
        }
        $hyphens = ['‐', '-', '.'];
        $iswc = parent::unDecorate($iswc, $hyphens);
        $sum = 1;
        for ($i = 1; $i <= 9; ++$i) {
            $sum = $sum + $i * (int) $iswc[$i];
        }
        $rem = $sum % 10;
        if ($rem !== 0) {
            $rem = 10 - $rem;
        }
        return (int) $iswc[10] === $rem;
    }

Usage Example

Beispiel #1
0
 /**
  * testInvalidIswc.
  *
  * @param mixed $iswc
  *
  * @dataProvider getInvalidIswc
  *
  * return void
  */
 public function testInvalidIswc($iswc)
 {
     $this->assertFalse(Iswc::validate($iswc));
 }