PHP: обнаружение недопустимых символов в тексте - PullRequest
0 голосов
/ 12 июня 2009

Я хотел бы проанализировать вводимые пользователем данные с помощью PHP. Мне нужна функция, которая сообщает мне, есть ли в тексте недопустимые символы или нет. Мой черновик выглядит следующим образом:

<?php
function contains_invalid_characters($text) {
    for ($i = 0; $i < 3; $i++) {
        $text = html_entity_decode($text); // decode html entities
    } // loop is used for repeatedly html encoded entities
    $found = preg_match(...);
    return $found;
}
?>

Функция должна возвращать TRUE, если входной текст содержит недопустимые символы, и FALSE, если нет. Допустимые символы:

a-z, A-Z, 0-9, пробел, пробел, "! § $% & / () = [] \?.:,; -_

Можете ли вы сказать мне, как это кодировать? Подходит ли preg_match () для этой цели? Также важно, чтобы позже я мог легко расширить функцию, чтобы она включала другие символы.

Надеюсь, вы мне поможете. Заранее спасибо!

1 Ответ

3 голосов
/ 12 июня 2009

Вы можете использовать регулярное выражение, чтобы сделать это:

function contains_invalid_characters($text) {
    return (bool) preg_match('/[a-zA-Z0-9äöüß "!§$%&\/()=[\]\?.:,;\-_]/u', $text);
}

Но учтите, что вам нужно закодировать этот код в той же кодировке, что и текст, который вы хотите проверить. Я рекомендую вам использовать для этого UTF-8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...