如何在 HTML 标签之间嵌入 PHP 代码?

6

目前我正在使用Codeigniter框架和PHP开发一个应用程序。在其中,我需要在HTML标签之间包含以下PHP代码。是否有人能够提供解决方案或指导?

PHP code :
             if(isset($_SESSION['email'])) 
                {  
                    echo '<a href="http://localhost/ci/myads_view">';
                    echo 'MY ADS' ;
                    echo '</a>';
                }
HTML code:
         <nav class="main-navigation dd-menu toggle-menu" role="navigation">
             <ul class="sf-menu"/>
            </nav>

这个可以运行,没有问题。确保它能够正常工作。 - Abdulla Nilam
1
这不是 CSS 代码,而是 HTML。 - Keyne Viana
你想要打印<ul>标签内的代码吗?这没有意义。 - Keyne Viana
可能是在头部输出之前或者没有启动会话。这将告诉你http://php.net/manual/en/function.error-reporting.php或CI的方法https://ellislab.com/codeigniter/user-guide/general/errors.html。 - Funk Forty Niner
请编辑您的问题,让其他观众知道这是一个HTML问题,而不是CSS问题。 - alexwc_
显示剩余3条评论
5个回答

7

您可以随意进出PHP:

<?php if(isset($_SESSION['email'])) { ?>
  <a href="http://localhost/ci/myads_view">MY ADS</a>
<?php } ?>

在上面的例子中,如果PHP的if语句评估为true,则在条件语句内的HTML代码将被执行,否则将不会执行。
就你的情况来说,我可以猜测你想要做的是这样的:
<nav class="main-navigation dd-menu toggle-menu" role="navigation">
  <ul class="sf-menu">
    <li>
      <?php if(isset($_SESSION['email'])) { ?>
        <a href="http://localhost/ci/myads_view">MY ADS</a>
      <?php } else { ?>
        <a href="http://localhost/ci/other-link">OTHER LINK</a>
      <?php } ?>
    </li>
  </ul>
</nav>

或者类似上述内容的东西?

2

PHP非常酷,你可以在文档中间停止/恢复它。 例如像这样,我希望这是你尝试做的解决方案:

<?php
  if(isset($_SESSION['email']))
  { /* this will temporarily "stop" php --> */ ?>
      <a href="http://localhost/ci/myads_view">
          <nav class="main-navigation dd-menu toggle-menu" role="navigation">
          <ul class="sf-menu">
      </a>
    <?php /* <-- php resumes now */
  }
?>

那么发生了什么事情?

首先,您编写IF语句和花括号,其中的代码通常在IF语句评估为TRUE时执行。

<?php
  if(something==true)
  {
    echo "write something to the page";
  }
?>

但是,你不需要使用PHP命令,只需快速地通过关闭PHP标签?>来跳出PHP,就像你通常在结束PHP代码时所做的那样。

<?php
  if(something==true)
  {
    ?>

现在,您可以继续使用普通的HTML而不必担心PHP命令相关的问题,例如转义字符'和"和\,以及观察您的“引号级别”等。相反,您可以编写标准的HTML。
当您完成输入应在IF语句为真时输出的HTML后,只需打开另一个PHP标签并关闭IF语句的花括号,如果这是您的PHP的结尾,请同时关闭PHP标签。
    <?php
  }
?>

1

以上这些代码是什么意思,我一点也不懂。 - siyumi_amarasinghe
这被称为heredoc语法,你不需要在使用echo时在php内部编写html标记,而是可以在<<<EOD --- 在EOD标记中编写整个html代码块。写下你想写的任何内容。 - Peeje
在网上搜索heredoc语法,我希望它能够解决你的疑惑。 - Peeje

0

要将链接放在导航栏中,您可以像这样做,全部都在同一个 PHP 文件中。

<?php
if(isset($_SESSION['email'])) {  
    $navLink= '<a href="http://localhost/ci/myads_view">MY ADS</a>';
}
?>

<nav class="main-navigation dd-menu toggle-menu" role="navigation">
 <ul class="sf-menu"><?php echo($navLink); ?>

0

这应该可以工作:

<?php if(isset($_SESSION['email'])): ?>  
    <nav class="main-navigation dd-menu toggle-menu" role="navigation">
    <ul class="sf-menu">
<?php endif; ?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接