Ho appena eseguito un lato di riferimento microtime a fianco 50 volte contro preg_match
in un if
dichiarazione e filter_var_array
convalidare i dati esatti stessi di reset, ecco i risultati microtime:
filter_var_array
microtime: 0.000834226608276
preg_match
microtime: 0.000180006027222
filter_var_array
sembra piuttosto ma è da 4 a 8 volte più lento di preg_match
quindi se si dispone di un sito Web con traffico elevato e si preferisce il codice veloce, suggerirei preg_match
.
Tuttavia, se ti piace il codice pulito e non ti interessa davvero come funziona, utilizza filter_var_array
che può essere più gestibile per l'applicazione di filtri facili su richieste e input di moduli.
Ma questo tipo di facilità può essere ottenuta anche scrivendo una funzione preg_match
per diversi scenari come la posta elettronica o alfanumerico, ma tenere a mente preg_match
sicurezza quando si scrive l'espressione regolare, ad esempio:
http://blog.php-security.org/archives/76-Holes-in-most-preg_match-filters.html
lo farei piace vedere una compassione nell'uso della memoria su entrambi.
Spero che questo aiuti
fonte
2013-11-12 23:38:37
ora Utilizza php_filter è possibile, è costruire-in (po 'più veloce e si è sicuri di utilizzare la convalida a destra), se non riesci a trovare ciò che serve, quindi utilizzare uno personalizzato. –
Non stavo parlando di funzioni personalizzate, dal momento che la funzione integrata sarà sempre più veloce. Stavo parlando di filtri che hanno già una funzione alternativa nativa per PHP. – Tiddo
Capisco, ma se usi un preg_match dovrai personalizzare regexp - avrei dovuto dire, regexp personalizzato con preg_match mi dispiace per la confusione –