簡體   English   中英

filter_var使用的默認正則表達式是什么?

[英]What are the defaults regex used by filter_var?

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

更多信息 :

http://php.net/manual/en/filter.filters.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM