【问题标题】:PHP inside HTML inside PHP [duplicate]PHP内的HTML内的PHP [重复]
【发布时间】:2012-06-29 04:47:01
【问题描述】:

我无法完成以下工作。我知道这是因为 HTML 字符串中的 PHP 函数,但我不知道如何修复它。

echo '<aside class="tipContainer">'.'<div>'.'<h1>'.$header.'</h1>'.'<img src="<?php bloginfo('template_url'); ?>/images/pencil_Tip.gif" alt="">'.'</div>'.'<p>'.$content.'</p>'.'</aside>';

我收到此错误:意外的 T_STRING,期待 ',' 或 ';'在 ....

【问题讨论】:

  • echo ' ';
  • 您不需要连接 html 标签。 (例如:) '
    '.'

    ' 可以更改为 '

    '.

标签: php html


【解决方案1】:

试试:

echo '<aside class="tipContainer"><div><h1>' . $header . '</h1>'.
     '<img src="' . get_bloginfo('template_url') . '/images/pencil_Tip.gif" ' .
     'alt=""></div><p>' . $content . '</p></aside>';

由于您已经在 echo 语句的 &lt;?php ?&gt; 标记中,因此当您想调用 get_bloginfo() 时不需要它们。只需将函数作为字符串连接的一部分调用即可。

【讨论】:

  • 那太丑了。看看 Marvos 的回答。
  • 我编辑了它,它正在审核中:-)
  • 如果您删除不需要的连接,我会投票赞成。
  • @Thomas 我投票赞成编辑,还需要 1 个。也清理了我的答案。谢谢。
  • 这解决了我的问题。谢谢!
【解决方案2】:
echo '<aside class="tipContainer">'.'<div>'.'<h1>'.$header.'</h1>'.'<img src="' . bloginfo('template_url') . '/images/pencil_Tip.gif" alt="">'.'</div>'.'<p>'.$content.'</p>'.'</aside>';

【讨论】:

    【解决方案3】:

    PHP 嵌套太深。 (php嵌套在php中)。试试这个:

    echo '<aside class="tipContainer"><div><h1>'.$header.'</h1><img src="'.bloginfo("template_url").'/images/pencil_Tip.gif" alt=""></div><p>'.$content.'</p></aside>';
    

    【讨论】:

    • 您可以删除这里正在完成的连接'.'&lt;div&gt;'.'
    • 好的,谢谢这确实返回了我需要的 URL,但它没有将它放在 img 元素的 src 属性中。 URL 现在显示为 side 元素之外的字符串。
    • 好电话@j08691。这是一些相当深的嵌套代码,当它们在另一个字符串中输出字符串时,我必须确保不要使用单引号(这就像 inception :)),我忽略了这一点。
    • @MarkBubel 这是因为 WordPress getbloginfo echo 是输出。请改用get_bloginfo()
    • 啊哈...谢谢,威廉!它现在按预期工作。
    【解决方案4】:

    试试这个:

    echo '<aside class="tipContainer"><div><h1>' . $header . '</h1><img src="'
    . bloginfo('template_url')
    . '/images/pencil_Tip.gif" alt=""></div><p>' . $content . '</p></aside>';
    

    【讨论】:

    • +1 删除了不需要的串联
    • 好的,很酷。但是你为什么要通过将 $header 和 $content 拉出字符串来添加不必要的连接呢?对于 PHP 中的简单变量,您不需要这样做。
    • 那行不通。不解释单引号内的变量
    • 是的,你是对的。我必须本能地使用双引号,我对此的测试有双引号。每天学习新东西。
    • 另请注意,关于什么是更快的单引号或双引号有很多讨论。但是今天真的不重要了。有些操作(数据库、正则表达式等)需要更多时间。
    【解决方案5】:

    解释为什么它不起作用:

    '<img src="<?php bloginfo('template_url'); ?>/images ...
    '______ php string _______'            '__ another php string ...
                               ^^^^^^^^^^^^
                               this is not part of the sting,
                               because you just closed it.
    

    解决方案:

    • 'aaa' . "'bbb'" . 'ccc' :备用引用样式
    • 'aaa\'bbb\'ccc' :引用字符串中的单引号
    • "aaa'bbb'ccc" :使用双引号来引用包含单引号的字符串

    【讨论】:

      【解决方案6】:

      试试:

      //stop executing PHP, go to plain HTML
       ?>
      <aside class="tipContainer">
      <div>  
          <h1><?php echo $header?> </h1>
          <img src="<?php bloginfo('template_url'); ?>/images/pencil_Tip.gif" alt="">
      </div>
      <p>
      <?php echo $content ?>
      </p>
      </aside>
      
      <?php //start php again
      

      通常使代码更简洁、更易于维护,以便将 php 交织到 html 中,而不是相反

      【讨论】:

        【解决方案7】:
        echo '<aside class="tipContainer"><div><h1>'.$header.'</h1><img src="' . bloginfo('template_url') . '/images/pencil_Tip.gif" alt=""></div><p>'.$content.'</p></aside>';
        

        【讨论】:

          【解决方案8】:

          试试下面的,

          --> 尽可能避免连接,不需要经常拆分/连接字符串,例如:“string1”。 "string2" 不是必需的,只需执行 "string1string2" 即可避免混淆。

          --> 使用IDE,对调试语法错误有很大帮助。

          <?php
          echo '<aside class="tipContainer"><div><h1>'. $header. '</h1><img src="' . bloginfo('template_url') . '"/images/pencil_Tip.gif" alt=""></div><p>'.$content.'</p></aside>';
          ?>
          

          【讨论】:

            猜你喜欢
            • 2011-11-01
            • 1970-01-01
            • 1970-01-01
            • 2015-06-10
            • 2014-03-16
            • 2019-01-19
            • 2019-01-23
            • 1970-01-01
            • 2011-07-04
            相关资源
            最近更新 更多