How to check if a string contains only English letters, digits, spaces, and special characters in PHP

1 Answer

0 votes
function containsOnlyEnglishLettersDigitsSpacesSpecialCharacters($str) {
	$characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 01234567890-_=+!@#$%^&*(){}[]|<>?/\,:;.~`'\"";
	
	$arr = str_split($str);
	
	foreach ($arr as $ch) {
		if (strpos($characters, $ch) === false) {
			return false;
		}
	}

	return true;
}
        
echo containsOnlyEnglishLettersDigitsSpacesSpecialCharacters("result: 3 + 7(a + !b)") ? "yes\n" : "no\n";

echo containsOnlyEnglishLettersDigitsSpacesSpecialCharacters("result: תוצאה") ? "yes\n" : "no\n";

echo containsOnlyEnglishLettersDigitsSpacesSpecialCharacters("result: 3 + 7(½a + !b)") ? "yes\n" : "no\n";



 
/*
run:
 
yes
no
no
  
*/

 



answered Mar 25, 2024 by avibootz
...