我正在使用usercake生成指向不同权限的链接。
如果我想要超链接,所有操作都很好,我添加了一个图像位,它破坏了代码,它将加载,但是整个地址栏就像没有权限一样。
在此之前:
//Links for permission level 3 (xx)
if ($loggedInUser->checkPermission(array(3))){
echo "<div id='xx'>
<ul>
<li><a href='xx.php'>xxx</a></li>
</ul></br ></div>";
}之后
//Links for permission level 3 (xx)
if ($loggedInUser->checkPermission(array(3))){
echo "<div id='xx'>
<ul>
<li><a href="xxx.php"><img src="xx"></a></li>
</ul></br ></div>";
}它只会让菜单栏消失。
有什么想法吗?我漏掉了什么明显的东西吗?
-更新信息是因为我没有正确逃脱吗?
发布于 2014-02-12 10:22:29
"字符将终止字符串文本,如果不使用连接运算符( .或,),则代码将引发语法错误。
您需要使用\来转义它们
if ($loggedInUser->checkPermission(array(3))){
echo "<div id='xx'>
<ul>
<li><a href=\"xxx.php\"><img src=\"xx\"></a></li>
</ul></br ></div>";
}如果失败,因为您没有在字符串中输出任何变量,所以可以使用' (单引号)开始和终止文字,这意味着不必在其中转义双引号。例如:
if ($loggedInUser->checkPermission(array(3))){
echo '<div id="xx">
<ul>
<li><a href="xxx.php"><img src="xx"></a></li>
</ul></br ></div>';
}发布于 2014-02-12 10:25:02
从文章中的语法突出显示中可以看出,双引号/单引号存在问题。
您的代码应该如下所示:
//Links for permission level 3 (xx)
if ($loggedInUser->checkPermission(array(3))){
echo "<div id='xx'>
<ul>
<li><a href='xxx.php'><img src='xx'></a></li>
</ul></br ></div>";
}外部引号应该保持为双引号,但是字符串中的所有引号都应该是单引号。这也是有意义的,因为您希望保持代码的一致性。如果您在字符串中使用了单引号,则保留该单引号,除非绝对必须使用使用double,在这种情况下,您可以转义引号:
<li><a href=\"xxx.php\"><img src=\"xx\"></a></li>发布于 2014-02-12 10:30:06
只需关闭,然后重新打开PHP标记。尽量将HTML与代码分隔开。它更干净,性能更好;)
根据文档其余部分的结构,您可以使用PHP中可用的控制结构替代语法 (我建议在这种情况下使用它)。
//Links for permission level 3 (xx)
if ($loggedInUser->checkPermission(array(3))) :
?>
<div id='xx'>
<ul>
<li><a href='xxx.php'><img src='xx'></a></li>
</ul>
</div>
<?php endif; https://stackoverflow.com/questions/21724996
复制相似问题