Каков наиболее эффективный способ проверки переменных в PHP? - PullRequest
1 голос
/ 22 ноября 2011

Я думаю о приложении, которое получает огромные данные от пользователя.Но эти данные должны быть проверены в php:

fe $ _GET ['id'] должно быть числом, каждый элемент массива должен быть значением в определенном диапазоне.

, поэтомуНасколько эффективны такие функции, как is_int($x) или isset($x)?Возможно, если ($ x! = Null) быстрее или (int) x приводит к таким же результатам.

Каков наилучший способ обработки данных, которые необходимо быстро получить в базу данных, но которые необходимо проверить?Есть ли разница в $ _GET и $ _POST в скорости?

Может быть, реализует класс, который что-то улучшает?

Может быть, для более конкретной возможности ответить, здесь немного неэффективный код:

if(isset($_GET["x"]) && $_GET["x"] > 0) { $x = $_GET["x"]; }
if(isset($_GET["y"]) && $_GET["y"] > 0) { $y = $_GET["y"]; }
if(isset($_GET["winWidth"]) && $_GET["winWidth"] > 0) {  $winWidth = $_GET["winWidth"]; }
if(isset($_GET["winHeight"]) && $_GET["winHeight"] > 0) {   $winHeight = $_GET["winHeight"]; }
if(isset($_GET["a"])) {  $a = $_GET["a"]; }

ОБНОВЛЕНИЕ:

А как насчет других функций безопасности, таких как:

mysql_real_escape_string($str);

или

stripslashes()

?Пожалуйста, Stackoverflow, покажи мне магию:)

Гарри

1 Ответ

1 голос
/ 27 ноября 2011

Самый быстрый способ проверить, было ли что-то опубликовано и является ли оно положительным целым числом:

if (isset($_POST['field']) && ctype_digit($_POST['field']))

mysql_real_escape_string невероятно медленный по сравнению с addslashes.Тем не менее, это определенно более безопасно.

Тем не менее, как правило, не нужно слишком беспокоиться обо всем этом.Мы говорим о миллиардных долях секунды здесь.

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