<?php
function pass_strong($candidate) {
if (!preg_match_all('$\S*(?=\S{8,})(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])(?=\S [\W])\S*$', $candidate))
return FALSE;
return TRUE;
}
/*
Explaining
$\S*(?=\S{8,})(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])(?=\S*[\W])\S*$
$ = string beginning
\S* = characters set
(?=\S{8,}) = with length atleast 8
(?=\S*[a-z]) = with at least 1 letter that is lowercase
(?=\S*[A-Z]) = with at least 1 letter that is uppercase
(?=\S*[\d]) = with at least 1 number
(?=\S*[\W]) = with at least 1 special character
$ = string end
*/
$Passwords = 'password01';
if(pass_strong($Passwords))
echo "$Passwords is a strong password<br />";
else echo "$Passwords is NOT a strong password<br />";
?>