本文目录一览:
关于php文本域中 html标签转义的问题,望大家帮忙解决看看
经本人测试,据我的理解,问题的原因应该不是脚本的问题,你用firebug进行观察会发现,当你传送post的时候,其中的html文本域内容已经进行了编码,但这个编码会在你脚本运行之前进行还原,所以,不会影响你的正则脚本运算。
据我的估计,原因在于:你在输入正则表达式的时候,可能不是太正确。以下是我的测试过程:
运行访问你的脚本,在文本域里将你的脚本源代码粘上,再在正则表达输入框里输入:
%input
type(.*)/%si
你查看网页源代码,其输出结果如下:
preArray
(
[0]
=
Array
(
[0]
=
input
type="submit"
name="button"
value="提交"
/
)
[1]
=
Array
(
[0]
=
="submit"
name="button"
value="提交"
)
)
/pre
说明,还是匹配到了html标签。
而第1个匹配项,在浏览器里会显示为一个html按钮,原因在于这是正规的html语句,所以,浏览器会将这个表现出来。
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
esc_html()(转义
Html)
esc_html()
函数用来转义
Html
代码,让
Html
代码不转义。
用法
esc_html(
$text
);
参数
$text
(字符串)(必须)要转义的字符串。
默认值:None
返回值
(字符串)返回转义后的字符。
例子
echo
esc_html(
'a
href=""A
link/a'
);
上边的代码将输出:
WordPress
函数:esc_html()(转义
Html)
(为了防止浏览器转码,我直接截了一张图)
更多
此函数位于:wp-includes/formatting.php
esc_url()(过滤链接)
很多
URL
会有一些小错误,用
esc_url()
函数可以屏蔽或者修正这些错误,并且可以拒绝不安全的协议。
esc_url()
函数的工作内容:
默认拒绝不是下面协议的
URL:defaulting
to
http、https、ftp、ftps、mailto、news、irc、gopher、nntp、feed
和
telnet
删除无效字符和危险的字符
将字符转换成
HTML
实体字符
使用方法
esc_url(
$url,
$protocols,
$_context
);
参数
$url
(字符串)(必须)要被过滤的
URL.
默认值:None
$protocols
(数组)(可选)可以接收协议的数组,如果没有设置,则默认为:defaulting
to
http、https、ftp、ftps、mailto、news、irc、gopher、nntp、feed
和
telnet.
默认值:None
$_context
(字符串)(可选)如何返回
URL.
默认值:(字符串)display
返回值
(字符串)返回过滤后的链接。
例子
?php
echo
esc_url(
''
);//输出:
?
更多
此函数位于:wp-includes/formatting.php
php输出html时转义,该怎么处理
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
语法:
htmlspecialchars(string,flags,character-set,double_encode)
预定义的字符是:
(和号)成为 amp;
" (双引号)成为 quot;
' (单引号)成为 '
(小于)成为 lt;
(大于)成为 gt;
htmlspecialchars_decode() 函数把一些预定义的 HTML 实体转换为字符。
语法:
htmlspecialchars_decode(string,flags)
会被解码的 HTML 实体是:
amp; 解码成 (和号)
quot; 解码成 " (双引号)
' 解码成 ' (单引号)
lt; 解码成 (小于)
gt; 解码成 (大于)