《php源码学习研究》 第二天 toHtml($value)

接下来这个是一个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 神语 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/sichunlei/archive/2013/05/16/3082435.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值