Я пытаюсь вызвать HTML / PHP-контент, который находится внутри моей базы данных, используя:
<?php echo $row_content['conteudo']; ?>
Когда строка вызывается, HTML появляется правильно, но PHP этого не делает. Я утверждаю, что это причина эха внутри основного эха.
<?php echo " <h3>Hello</h3> <?php do { ?> <div class=\"indios\"> <a href=\"indio.php?id=<?php echo $row_indiosct['id']; ?>\"> <img src=\"galeria/indios/<?php echo $row_indiosct['foto']; ?>\" alt=\"<?php echo $row_indiosct['nome']; ?>\" /> <br /><?php echo $row_indiosct['nome']; ?></a></div> <?php } while ($row_indiosct = mysql_fetch_assoc($indiosct)); ?> " ?>
Строка одного из этого кода является тем же самым эхом, что и первое поле кода, оно не повторяется, оно доступно только для справки и для понимания, где проблема.
Я уже исправил некоторые кавычки, но он дает ошибку в строке 1-го эха.
Это самый уродливый код, который я когда-либо видел …
<?php echo ' <h3>Hello</h3>'; while ($row_indiosct = mysql_fetch_assoc($indiosct)) { echo ' <div class="indios"> <a href="indio.php?id='.$row_indiosct['id'].'"> <img src="galeria/indios/'. $row_indiosct['foto'].'" alt="'.$row_indiosct['nome'].'" /> <br />'.$row_indiosct['nome'].'</a> </div>'; } ?>
Вы также можете использовать синтаксис HEREDOC .
Не делай этого. Многострочные эхо, особенно когда у вас есть встроенные кавычки, быстро становятся болью. Вместо этого используйте HEREDOC .
<?php echo <<<EOL <h3>Hello</h3> ... <div class"indios"> ... EOL;
и да, PHP внутри вашего эха НЕ будет выполняться. PHP не является «рекурсивно исполняемым» языком. Если вы выводите строку, любой PHP-код, встроенный в эту строку, не выполняется – он будет рассматриваться как часть вывода, например
echo "<?php echo 'foo' ?>"
НЕ собирается выводить только foo
. Фактически вы получите результат
<?php echo 'foo' ?>
Вы неправильно поняли, как работает PHP. PHP обрабатывается сервером. Когда он сталкивается с вашим скриптом, он видит следующее:
<?php echo "some long piece of text that you have told PHP not to look at" ?>
Какова причина попыток вложить вызовы PHP внутри строк?
оценить код php в строке, используя функцию eval (): this post Выполнить PHP-код в строке
<?php $motto = 'Hello'; $str = '<h1>Welcome</h1><?php echo $motto?><br/>'; eval("?> $str <?php ");
также, если ваша потребность в буфере кода выводится в строке, вы также можете использовать метод ob_start ():
<?php ob_start(); ?> <h3>Hello</h3>; <?php while ($row_indiosct = mysql_fetch_assoc($indiosct)){ ?> <div class="indios"> <a href="indio.php?id='<?php echo $row_indiosct['id']'"> <img src="galeria/indios/'<?php echo $row_indiosct['foto'].'" alt="'.$row_indiosct['nome'].'" /> <br />'.$row_indiosct['nome'].'</a> </div>'; <?php } ?>