- str_replace: documentation ( source)
- strtolower: documentation ( source)
- str_split: documentation ( source)
<?php
class PassphraseException extends Exception {}
class PassphraseTooShortException extends PassphraseException {}
class PassphraseTooLongException extends PassphraseException {}
class PassphraseRequiresUppercaseLetterException extends PassphraseException {}
class PassphraseRequiresNumberOrSpecialException extends PassphraseException {}
class Passphrase {
static function validate($passphrase) {
$len = strlen($passphrase);
if ($len < 15) {
throw new PassphraseTooShortException('Jesus fucking christ, read the requirements you fuck!');
}
if ($len > 140) {
throw new PassphraseTooLongException('Are you fucking kidding me? How are you going to remember this shit...');
}
$no_alpha = str_replace(str_split('abcdefghijklmnopqrstuvwxyz'), '', strtolower($lowerpass));
echo $no_alpha;exit;
if ($passphrase === $lowerpass) {
throw new PassphraseRequiresUppercaseLetterException('Fucking idiot.');
}
$lowerpass = strtolower($passphrase);
if (str_replace(str_split('abcdefghijklmnopqrstuvwxyz'), '', $lowerpass) === '') {
throw new PassphraseRequiresNumberOrSpecialException('You fucking fuck, fuck you fucking fucker fuckface fuck.');
}
}
static function isValid($passphrase) {
try {
static::validate($passphrase);
} catch (PassphraseException $e) {
return false;
}
return true;
}
}
Passphrase::validate('qt3point141592653589793238');