PHP 内部的 PHP 内部的 HTML


PHP inside HTML inside PHP

我无法进行以下工作。我知道这是因为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 '<aside class="tipContainer"><div><h1>' . $header . '</h1>'.
     '<img src="' . get_bloginfo('template_url') . '/images/pencil_Tip.gif" ' .
     'alt=""></div><p>' . $content . '</p></aside>';

由于您已经在 echo 语句的 <?php ?> 标签中,因此当您要调用 get_bloginfo() 时不需要它们。 只需调用该函数作为字符串连接的一部分。

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

尝试:

//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中,而不是相反。

试试这个:

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

解释为什么它不起作用:

'<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" :使用双引号引用包含单引号的字符串
echo '<aside class="tipContainer"><div><h1>'.$header.'</h1><img src="' . bloginfo('template_url') . '/images/pencil_Tip.gif" alt=""></div><p>'.$content.'</p></aside>';

请尝试以下操作,

-

-> 尽量避免串联,无需经常拆分/连接字符串,例如:"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>';
?>