簡體   English   中英

回顯圖像鏈接會破壞我的代碼

[英]Echoing an image link breaks my code

我正在使用用戶蛋糕生成指向不同權限的鏈接。

如果我想要超鏈接,一切都可以正常工作,我在圖像中添加了一個位,它破壞了代碼,它將加載,但整個地址欄都像沒有權限一樣。

之前:

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

它只是使菜單欄消失。

有任何想法嗎? 我是否缺少明顯的東西?

--update是因為我沒有正確逃脫嗎?

"字符將終止字符串常量,如果你不使用連接運算符跟着他們(無論是.或者, ),你的代碼將拋出一個語法錯誤。

您需要使用\\進行轉義:

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

從帖子中突出顯示的語法可以看出,雙引號/單引號存在問題。

您的代碼應如下所示:

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

您的外部引號應保持雙引號,但字符串中的所有引號應為單引號。 這也很有意義,因為您希望保持代碼的一致性。 如果您在字符串中使用了單引號,則除非您絕對必須使用雙引號,否則請保留該單引號,在這種情況下,可以轉義引號:

<li><a href=\"xxx.php\"><img src=\"xx\"></a></li>

只需關閉然后重新打開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; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM