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

Phi*_*hil 3 html php regex bbedit

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

echo "<a href="../" title="link title">".$link_text."</a>";
Run Code Online (Sandbox Code Playgroud)

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

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

有任何想法吗?

Gre*_*reg 13

你应该只使用单引号:

echo '<a href="../" title="link title">' . $link_text . '</a>';
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记htmlspecialchars($ link_text) (6认同)

Mac*_*ski 8

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

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


Ish*_*Ish 5

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

echo <<<EOT
<a href="../" title="link title">$link_text</a>
EOT;
Run Code Online (Sandbox Code Playgroud)