当前位置:  开发笔记 > 编程语言 > 正文

转义PHP输出的HTML属性的双引号

如何解决《转义PHP输出的HTML属性的双引号》经验,为你挑选了3个好方法。

通常在编写PHP时我会输出一些像这样的HTML -

echo "".$link_text."";

显然这不会解析,因为我需要在元素的属性中转义双引号.是否有正则表达式会快速执行此操作而不是手动添加反斜杠?

另一件事 - 正则表达式不应该在标签之外转义双引号(例如我附加$link_text变量的地方).

有任何想法吗?



1> Greg..:

你应该只使用单引号:

echo '' . $link_text . '';


不要忘记htmlspecialchars($ link_text)

2> Maciej Łebko..:

我能提出的解决方案(并非没有逃脱):

单引号

echo '' . $link_text. '';

使用双引号

echo "$link_text";

的sprintf

echo sprintf('%s', $link_text);

使用HEREDOC

echo <<$link_text
EOF;

像smarty一样使用模板引擎

退出PHP模式:

?>

顺便说一句,一定要使用htmlspecialchars()$link_text变量,或者你将有一个XSS安全漏洞.



3> Ish..:

使用(这种语法不用担心引号等)

echo <<$link_text
EOT;

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有