如何在PHP中输出含JavaScript与PHP变量的href链接?
解决PHP echo输出含JS与PHP变量的链接时的引号冲突问题
下面是几种实用的解决办法,你可以根据场景选择:
转义引号拼接
如果你坚持用echo直接输出,根据外层引号的类型转义内部相同的引号即可:- 外层用双引号时,内部双引号加反斜杠
\,PHP变量可直接写在双引号里解析:echo "<a href=\"javascript:func('$php_var')\">点击链接</a>"; - 外层用单引号时,内部单引号加反斜杠
\,变量需要用.拼接进去:echo '<a href="javascript:func(\'' . $php_var . '\')">点击链接</a>';
- 外层用双引号时,内部双引号加反斜杠
用HEREDOC语法输出
这种方式不用转义任何引号,支持多行内容,PHP变量也能直接解析,特别适合长代码场景:echo <<<LINK_CONTENT <a href="javascript:func('$php_var')">点击链接</a> LINK_CONTENT;注意:结尾的
LINK_CONTENT;必须单独占一行,且前面不能有空格或缩进。回归HTML嵌入PHP的写法
其实如果不是必须在PHP代码块里输出整个链接,完全可以继续用最初的写法,反而更直观:<a href="javascript:func('<?php echo $php_var; ?>')">点击链接</a>只有当你需要在PHP的循环、条件判断里动态生成链接时,再用前两种方法即可。
你的实现思路本身没问题,只是没找对引号的处理方式,上面几种方法都能解决冲突。
内容的提问来源于stack exchange,提问作者rdel
相关产品推荐
相关产品推荐

