我正在编写需要接收一些PHP变量的HTML字符串。但是,我似乎无法正确地避开双引号。
尝试1:
$html .= '<span class="badge"><a href="#" style="color:orange"><span class="glyphicon glyphicon-arrow-up" aria-hidden="true" onclick="sendToProduction(\''.$configType.'\')"></span></a></span>';
结果:
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true" onclick="sendToProduction(\' project\')"=""></span>
尝试2:
$html .= '<span class="badge"><a href="#" style="color:orange"><span class="glyphicon glyphicon-arrow-up" aria-hidden="true" onclick="sendToProduction('.'$configType'.')"></span></a></span>';
结果:
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true" onclick="sendToProduction(project)"></span>
关闭,但应该是'project'
。
期望的结果:
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true" onclick="sendToProduction('project')"></span>
答案 0 :(得分:2)
说到这里,你只需要先尝试一步,你只需要从单个引号中移出双引号。
$html .= '<span class="badge"><a href="#" style="color:orange"><span class="glyphicon glyphicon-arrow-up" aria-hidden="true" onclick="sendToProduction("'.$configType.'")"></span></a></span>';
答案 1 :(得分:1)
$HTML = <<<_E_
<span class="badge"><a href="#" style="color:orange"><span class="glyphicon glyphicon-arrow-up" aria-hidden="true" onclick="sendToProduction("$configType")"></span></a></span>
_E_;
$frame = <<<'_E_'
<span class="badge"><a href="#" style="color:orange"><span class="glyphicon glyphicon-arrow-up" aria-hidden="true" onclick="sendToProduction("%s")"></span></a></span>
_E_;
$HTML = sprintf($frame, $configType);
答案 2 :(得分:0)
我总是建议不要回显HTML,所以请执行此操作
<?php
$configType = 'project';
// etc ...
?>
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true" onclick="sendToProduction(<?= $configType ?>)"></span>
如果你停止PHP,你可以编写HTML,它将正常工作。在HTML内部,您可以使用简写的php回声来获取HTML中所需的任何数据
这样做的一个主要优点是您的编辑器将正确语法突出显示所有代码(包括HTML)
答案 3 :(得分:0)
通过让PHP完成变量插值工作,你可以省去一些麻烦。在字符串末尾放置双引号,并将其他引号更改为单引号而不连接:
$html .= "<span class='badge'><a href='#' style='color:orange'><span class='glyphicon glyphicon-arrow-up' aria-hidden='true' onclick='sendToProduction('$configType')'></span></a></span>";