PHP проверяет, содержит ли строка определенный процент буквенно-цифровых символов
У меня есть php строка $comment, иногда поле $comment будет содержать не буквенно-цифровые символы, есть ли способ узнать, какой процент $comment является буквенно-цифровым?
Спасибо
2 ответа
Решение
$comment_alpha = preg_replace('/[^a-z\d]+/i', '', $comment);
$alpha_percent = 100 * strlen($comment_alpha) / strlen($comment);
Вы можете попробовать что-то вроде этого: (не особенно эффективно)
<?php
$string = "TestItOut##@22383";
$all = array(
"0","1","2","3","4","5","6","7","8","9",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"
);
$num_alphanum = 0;
foreach ( $all as $char ) {
$num_alphanum += substr_count( $string, $char );
}
$percent = ( $num_alphanum / strlen( $string ) ) * 100;
echo $percent . "%";
?>
Но Regex может быть проще подход проще