这是Kohana框架的Input_Core类的xss_clean方法的一段代码:
do
{
// Remove really unwanted tags
$old_data = $data;
$data = preg_replace('#</*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i', '', $data);
}
while ($old_data !== $data);
Run Code Online (Sandbox Code Playgroud)
do ... while循环是否必要?我认为preg_replace调用只需一次迭代即可完成所有工作.
这是Google Analytics的跟踪代码:
var _gaq = _gaq || [];
_gaq.push(["_setAccount", "UA-256257-21"]);
_gaq.push(["_trackPageview"]);
(function() {
var ga = document.createElement("script"); ga.type = "text/javascript"; ga.async = true;
ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";
var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ga, s);
})();
Run Code Online (Sandbox Code Playgroud)
您可以看到该函数在括号内.
你为什么这么认为?
我应该如何实现一种方法,获取由拉丁字符组成的字符串,并将其转换为由不同字符集(比方说西里尔字母)组成的字符串。
\n\n例如,以下是 PHP 中的完成方式:
\n\nfunction latin_to_cyrillic($string)\n{\n $array = array(\n "\xd0\xb0" => "a",\n "\xd0\xb1" => "b",\n "\xd0\xb2" => "v",\n "\xd0\xb3" => "g",\n "\xd0\xb4" => "d",\n "\xd0\xb5" => "e",\n "\xd0\xb6" => "zh",\n "\xd0\xb7" => "z",\n "\xd0\xb8" => "i",\n "\xd0\xb9" => "y",\n "\xd0\xba" => "k",\n "\xd0\xbb" => "l",\n "\xd0\xbc" => "m",\n "\xd0\xbd" => "n",\n "\xd0\xbe" => "o",\n "\xd0\xbf" => "p",\n "\xd1\x80" => "r",\n "\xd1\x81" => "s",\n "\xd1\x82" => "t",\n "\xd1\x83" => "u",\n "\xd1\x84" => "f",\n "\xd1\x85" => "h",\n "\xd1\x86" => "ts",\n …Run Code Online (Sandbox Code Playgroud) 我一直在研究CodeIgniter和CakePHP的代码,我注意到它们类中的一些方法以下划线_或双下划线为前缀__.
那是什么意思?
第一种格式似乎比第二种格式更受欢迎.这是为什么?
第一个(每行的星号)
/*
* line 1
* line 2
* line 3
*/
Run Code Online (Sandbox Code Playgroud)
第二个(最小的星号)
/*
line 1
line 2
line 3
*/
Run Code Online (Sandbox Code Playgroud) 我一直在使用array_unique从数组中删除重复值,但是当值是对象时它似乎不起作用 - stdClass的实例.
这是DB规范化理论的一个概念:
当非关键字段是关于另一个非关键字段的事实时,违反了第三范式.
将类似的概念应用于函数/函数参数是否有意义?
考虑以下功能:
function validate(field, rule_name, rule_value);
// Usage
validate("password", "min_length", 6);
validate("password", "matches_regex", "/^\S+$/");
Run Code Online (Sandbox Code Playgroud)
在这个示例函数中,第三个参数描述了第二个参数并且似乎对第一个参数没有"态度".在某种程度上感觉就像一个非规范化的功能.
我不知道我是否正在制定这个,但我可以注意到表名和表字段,DB,函数名和函数参数之间的类比.
如果这样的比喻有意义,那么函数设计者从DB归一化理论中借用概念是否也有意义?
数组的第一个元素(在大多数编程语言中)的 id(索引)为 0。MySQL 表的第一个元素(行)的(自动递增的)id 为 1。后者似乎是个例外。