我正在考虑一个从用户那里收到大量数据的应用程序。 但是这些数据必须在php中验证:
f.e。 $ _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,告诉我魔术:)
哈利
答案 0 :(得分:1)
检查某些内容是否已发布以及是否为正整数的最快方法:
if (isset($_POST['field']) && ctype_digit($_POST['field']))
与mysql_real_escape_string
相比, addslashes
速度极慢。但是,它肯定更安全。
然而,通常没有必要过多地担心这一切。我们在这里谈论的是十亿分之一秒。