Используются ли регулярные выражения в функции PHP? filter_var упоминается где-то?
Исходный код может быть немного сложным, даже если вы знаете, что ищете. Я связал файлы, которые определяют, как filter_var
работает ниже.
Около вершины https://github.com/php/php-src/blob/master/ext/filter/filter.c Вы должны быть в состоянии увидеть filter_list
массив, который соответствует константам фильтра PHP с соответствующими им функциями фильтрации. filter_var
определяется в этом файле, но мы можем пока игнорировать это.
Сами фильтры все определены в https://github.com/php/php-src/blob/master/ext/filter/logical_filters.c.
Вы можете заметить, что не все фильтры используют регулярные выражения. На самом деле, с первого взгляда, единственный, кого я видел, используя любые шаблоны регулярных выражений, был php_filter_validate_email
, Другие, кажется, имеют альтернативную логику, необходимую им для эффективного функционирования, и не требуют регулярных выражений для фильтрации своего контента.
Мои объяснения выше были упрощены, чтобы ответить на вопрос. Я предлагаю вам использовать filter_var
с соответствующими флагами, где это возможно, вместо того, чтобы пытаться перепроектировать или заново изобрести колесо, поскольку здесь задействована дополнительная логика, и это делает ваш код намного проще.
да они в основном 4 типа:
Validate filters
Sanitize filters
Other filters
Filter flags
Дополнительная информация :