神语

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

接下来这个是一个toHtml($value)的函数,研究学习。

function toHtml($value) {
	return is_array($value) ? array_map('toHtml', $value) : htmlspecialchars(stripslashes($value));
	//array_map 函数返回用户自定义函数作用后的数组 看了一下实例,输出结果一般为:Array ( [0] => Horse [1] => Fido [2] => Cat )
	//stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。  其实就是清除了反斜杠
	//htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
	//所以,这个函数的意思就是,如果用户留言的$value是一个数组,那么返回array_map('toHtml', $value) ,如果用户留言的$value不是数组,就用函数整理一下
	//最终结果结果就是这个函数,表示,一直循环,直到用户留言的$value为一个数组!
}

  

下面是这个自定义函数用到的函数

array_map()例子

<?php
function myfunction($v) 
{
if ($v==="Dog")
	{
	return "Fido";
	}
return $v;
}
$a=array("Horse","Dog","Cat");
print_r(array_map("myfunction",$a));
?>

  

输出:

Array ( [0] => Horse [1] => Fido [2] => Cat )

  

stripslashes()例子

<?php
echo stripslashes("Who\'s John Adams?");
?>

输出:

Who's John Adams?

  

addslashes()例子

在本例中,我们要向字符串中的预定义字符添加反斜杠:

<?php
$str = "Who's John Adams?";
echo $str . " This is not safe in a database query.<br />";
echo addslashes($str) . " This is safe in a database query.";
?>

输出:

Who's John Adams? This is not safe in a database query.
Who\'s John Adams? This is safe in a database query.

htmlspecialchars()例子

函数把一些预定义的字符转换为 HTML 实体。

预定义的字符是:

  • & (和号) 成为 &amp;
  • " (双引号) 成为 &quot;
  • ' (单引号) 成为 &#039;
  • < (小于) 成为 &lt;
  • > (大于) 成为 &gt;
<?php
$str = "John & 'Adams'";
echo htmlspecialchars($str, ENT_COMPAT);  //只转换双引号
echo "<br />";
echo htmlspecialchars($str, ENT_QUOTES);  //转换单、双引号
echo "<br />";
echo htmlspecialchars($str, ENT_NOQUOTES);  //都不转换
?>

浏览器输出:

John & 'Adams'
John & 'Adams'
John & 'Adams'

如果在浏览器中查看源代码,会看到这些 HTML:

<html>
<body>
John &amp; 'Adams'<br />
John &amp; &#039;Adams&#039;<br />
John &amp; 'Adams'
</body>
</html>
posted on 2013-05-16 19:10  神语  阅读(326)  评论(1编辑  收藏  举报