4

我的 detailansicht.php 中有以下代码:

<div class="file_description_box">
    <b>Beschreibung:</b><br /><br />
        <?php 
             if(!empty($beschreibung))
                 echo '<div align="center">';
                 echo '<img src="$coverlink" alt="Cover">';
                 echo '</div><br />';
                 echo format_content($beschreibung); 
             **else**
             echo '<i>Keine Beschreibung vorhanden</i>';
        ?>
</div>

但我认为img标签一定有错误。每次我尝试打开页面时,他都会向我显示一个错误:“解析错误:语法错误,第 123 行 bla/bla/include/detailansicht.php 中的意外 T_ELSE”(第 123 行是 else 标记为粗体)。我尝试了几种方法,但我总是得到这个错误。如果有人可以帮助我,那就太好了。

-斯塔布兹

4

8 回答 8

15

您缺少一些大括号,并且您的 PHP 变量不是嵌入式属性。您的代码应如下所示:

<div class="file_description_box">
    <b>Beschreibung:</b><br /><br />
        <?php 
             if(!empty($beschreibung)){
                 echo '<div align="center">';
                 echo '<img src="'.$coverlink.'" alt="Cover">';
                 echo '</div><br />';
                 echo format_content($beschreibung); 
             }else{
                 echo '<i>Keine Beschreibung vorhanden</i>';
                }
        ?>
</div>

顺便说一句,您使用 PHP 的目的并不重要,如果图像标签有问题并且无法正确显示,那么假设您已正确输出它,通常是 HTML 问题。

在这种情况下,这是一个 PHP 问题,因为代码中有一些错误,它与图像标签没有任何关系。

于 2009-05-18T12:09:27.763 回答
2
<?php 
     if(!empty($beschreibung)) {
         echo "<div align=\"center\">";
         echo "<img src=\"$coverlink\" alt=\"Cover\">";
         echo "</div><br />";
         echo format_content($beschreibung); 
      } else {
         echo "<i>Keine Beschreibung vorhanden</i>";
      }
?>
于 2009-05-18T12:16:08.777 回答
1

感谢您的所有回答...我现在正在尝试 Kris 的方法...

还有带括号的东西...我不知道这是怎么发生的...我没有编写原始脚本(我只是添加了带封面的部分)而且我没有意识到缺少括号,因为 $beschreibung 永远不会为空,我认为如果括号 a 丢失,php 会忽略 if 和 else...

于 2009-05-18T12:57:37.367 回答
1

您缺少花括号:

if () {
...
} else {
...
}

所以你的 PHP 在语法上不正确,不会被 PHP 超文本预处理器解析。

于 2009-05-18T12:10:31.287 回答
1

尝试使用花括号:

<?php 
     if(!empty($beschreibung)) {
         echo '<div align="center">';
         echo '<img src="$coverlink" alt="Cover">';
         echo '</div><br />';
         echo format_content($beschreibung); 
      } else {
         echo '<i>Keine Beschreibung vorhanden</i>';
      }
?>
于 2009-05-18T12:10:44.857 回答
1

利用

echo '<img src="', $coverlink', " alt="Cover">';

单引号内的 PHP 变量不会被评估

于 2009-05-18T12:12:27.803 回答
1

是的,你错过了花括号。简单地用标签很好地格式化代码不会使它成为一个块。

您还错过了 img 标签 (/>) 的结尾,但这与您的问题无关。

于 2009-05-18T12:12:38.287 回答
1

我会选择另一种语法,我觉得与 html 混在一起的眼睛更容易:

<? if(!empty($beschreibung)) : ?>
    <div align="center">
        <img src="<?= $coverlink; ?>" alt="Cover">
    </div><br />
    <?= format_content($beschreibung); ?> 
<? else : ?>
    <i>Keine Beschreibung vorhanden</i>
<? endif ; ?>

PS:我不主张将逻辑放入标记中,只是指出它可以做到。

编辑:修复语法错误(; 在 endif 而不是 :) 之后

于 2009-05-18T12:15:33.570 回答