PHP echo внутри эха

Я пытаюсь вызвать 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-го эха.

Related of "PHP echo внутри эха"

Это самый уродливый код, который я когда-либо видел …

 <?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 "); 

http://codepad.org/ao2PPHN7

также, если ваша потребность в буфере кода выводится в строке, вы также можете использовать метод 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 } ?>