2009-05-18 5 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 тег. каждый раз, когда я открываю страницу, он показывает мне ошибку: «Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_ELSE в bla/bla/include/detailansicht.php в строке 123» (строка 123 - это выделение жирным шрифтом). Я пробовал несколько методов, но я всегда получаю эту ошибку. Было бы хорошо, если бы кто-то мог мне помочь.

-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

Я бы пойти на alternative syntax, который я чувствую себя легче на глазах перемешанных с 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 вместо :)

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

спасибо за все ваши ответы ... Я пытаюсь метод Kris' теперь ...

И вещь с скобками ... я не знаю, как это могло произойти ... Я не писал оригинальный скрипт (я просто добавил часть с обложкой), и я не понял, что отсутствовали скобки , потому что $ beschreibung никогда не пуст, и я думаю, что php игнорирует if и else, если скобки отсутствуют.

+1

Нет, причина, по которой он работал раньше, заключается в том, что если есть только одно утверждение, следующее за «if», тогда вам не нужны фигурные скобки для «else» ». "if ($ foo) blah(); else bleh();" допустим PHP, но если «blah() - это более одного оператора, вам нужны фигурные скобки. – dirtside

+0

Всегда добавляйте фигурные скобки. Если sy не добавляет фигурные скобки в 1 строку, если/else-s, ударил его сильно :) –

Смежные вопросы