2009-05-18 6 views
3

は、私は私のdetailansicht.phpに次のコードを持っている:Imgソースを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タグに誤りがなければならないと思います。私はページを開くたびに "Parse error:構文エラー、予期しないT_ELSEをbla/bla/include/detailansicht.phpの123行目"に表示しています(行123は太字のelseです)。 私はいくつかの方法を試みましたが、私はいつもこのエラーを受け取ります。 誰かが私を助けることができればいいですね。

-sTarbuZz

+1

ドイツ語で英語と英語でコード全体を書くことを検討してください。バイリンガルコードを維持することは非常に面倒です。 – pduersteler

答えて

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の問題だった、それは本当にイメージタグを行うには何も持っていません。あなたは中括弧が欠落している

1

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

ので、あなたのPHP構文的には正しくないとPHPハイパーテキストプリプロセッサによって解析されません。

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>'; 
     } 
?> 
1

使用単一引用符で内部

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

PHP変数が

+0

カウボーイ、私はあなたが '$ coverlink'を意味すると思います。 – Sam152

1

うんを評価されることはありません、あなたは、中括弧を逃しています。単にタブでコードを整形しても、それをブロックにすることはできません。

また、あなたは、imgタグ(/>)の終了を逃したが、それは、あなたの質問には無関係です。

1

私はHTMLと混在目に簡単です感じるalternative syntaxのために行くだろう:

<? 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の後の代わりに:)

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>"; 
     } 
?> 
+0

一重引用符の中に二重引用符をエスケープする必要はありません。 – Sam152

+2

true ...しかし私は自分のスクリプトを自分で作っていませんでした;) – x4tje

1

すべてのあなたの答えに感謝の... 私は...今

のクリスメソッドをしようとしていますそして、括弧で囲まれたもの...私はこれがどうして起こるかわからない...元のスクリプト(私はちょうどカバーを付け加えた)を書いていないし、括弧がないことを認識しなかったなぜなら、$ beschreibungは決して空ではなく、PHPはifとelseを無視すると思います。

+1

いいえ、前に働いたのは、 "if"の後ろに文が1つしかなければ "else"の中括弧は必要ないからです" "if($ foo)blah(); else bleh();"有効なPHPですが、 "blah()が2つ以上の文である場合は、中括弧が必要です – dirtside

+0

中括弧を必ず追加してください。 –

関連する問題