回应图像链接会破坏我的代码

时间:2014-02-12 10:20:28

标签: php usercake

我正在使用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>";
    }

它只是让菜单栏消失。

有什么想法吗?我错过了一些明显的东西吗?

- 更新 是因为我还没有正常逃脱?

3 个答案:

答案 0 :(得分:2)

"个字符将终止字符串文字,如果不使用连接运算符(.,),则代码将抛出语法错误。

您需要使用\转义它们:

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>';
}

答案 1 :(得分:0)

从帖子中的语法高亮显示中可以看出,双引号/单引号存在问题。

您的代码应如下所示:

//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>

答案 2 :(得分:0)

只需关闭然后重新打开PHP标记即可。尽可能将HTML从代码中分离出来......它更干净,性能更高;)

根据文档其余部分的结构,您可以从PHP中提供的 control structures alternative syntax 中受益(我建议在这种情况下使用)

  //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;