использовать источник IMG с переменной PHP? - PullRequest
3 голосов
/ 18 мая 2009

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

-sTarbuZz

Ответы [ 8 ]

15 голосов
/ 18 мая 2009

Вам не хватает фигурных скобок, и ваша переменная 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, потому что в коде было несколько ошибок, на самом деле он не имеет ничего общего с тегом image.

1 голос
/ 18 мая 2009

спасибо за все ваши ответы ... Я сейчас пробую метод Криса ...

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

1 голос
/ 18 мая 2009
<?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 голос
/ 18 мая 2009

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

1 голос
/ 18 мая 2009

Да, вам не хватает фигурных скобок. Простое форматирование кода с помощью вкладок не сделает его блоком.

Также вы пропустили окончание тега img (/>), но это не имеет отношения к вашему вопросу.

1 голос
/ 18 мая 2009

использование

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

Переменные PHP внутри одинарных кавычек не будут оцениваться

1 голос
/ 18 мая 2009

Попробуйте использовать фигурные скобки:

<?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 голос
/ 18 мая 2009

Вам не хватает фигурных скобок:

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

так что ваш PHP не синтаксически корректен и не будет анализироваться препроцессором гипертекста PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...