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行目は太字で示されています)。いくつかの方法を試しましたが、常にこのエラーが発生します。誰かがこれを手伝ってくれるといいですね。

-sTarbuZz

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

中括弧がありません:

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

すべての回答に感謝します...私は今クリスの方法を試しています...

角かっこのこと...これがどのように起こるのかわかりません...元のスクリプトを書いていませんでした(表紙の部分を追加しただけです)、角かっこが欠落していることに気づきませんでした、 $beschreibung が空になることはなく、かっこが欠落している場合、php は if および else を無視すると思います...

于 2009-05-18T12:57:37.367 に答える
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: マークアップ内にロジックを入れることを推奨しているわけではありません。

edit : 構文エラーを修正しました (: ではなく endif の後;)

于 2009-05-18T12:15:33.570 に答える