通过PHP设置html属性的最佳做法是什么?

use*_*729 51 html php

在PHP中完成这项工作时,可能会遇到这种问题:

<span title="<?php echo $variable;?>">...
Run Code Online (Sandbox Code Playgroud)

问题是如果$variable包含双引号,则应将其更改为\"

这还不是整个故事:

<span title='<?php echo $variable;?>'>...
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我们需要更改单引号\',但保留双引号.

那么我们怎么能以一般的财产方式来做呢?

Dom*_*ger 85

您总是希望对HTML属性中的内容进行HTML编码,您可以使用以下内容htmlspecialchars:

<span title="<?php echo htmlspecialchars($variable); ?>">
Run Code Online (Sandbox Code Playgroud)

您可能希望将第二个参数($quote_style)设置为ENT_QUOTES.

唯一潜在的风险是$variable可能已经编码,因此您可能希望将最后一个参数($double_encode)设置为false.

  • 这里用html5规范确认:http://stackoverflow.com/questions/5320177/what-values-can-i-put-in-an-html-attribute-value (2认同)