2013-07-04 6 views
1

Я пытаюсь вызвать содержимое HTML/PHP, что это внутри моей базе данных с помощью: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-го эха.

ответ

2

Вот некоторые из уродливых код, который я когда-либо видел ...

<?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.

+0

Сказал (а) спасибо: D Он сработал! –

0

Вы неправильно поняли, как работает PHP. PHP обрабатывается сервером. Когда он встречает свой сценарий, он видит следующее:

<?php echo "some long piece of text that you have told PHP not to look at" ?> 

Что такое рассуждение позади пытается гнездовых PHP звонки внутри строки?

1

Не делайте этого. Многострочные эхо, особенно когда у вас есть встроенные кавычки, быстро становятся болью. Вместо этого используйте HEREDOC.

<?php 

echo <<<EOL 
<h3>Hello</h3> 
... 
<div class"indios"> 
... 
EOL; 

и да, PHP внутри эхо-сигнала НЕ выполнить. PHP не является «рекурсивно исполняемым» языком. Если вы выводите строку, любой PHP-код, встроенный в эту строку, не выполняется - он будет рассматриваться как часть вывода, например.

echo "<?php echo 'foo' ?>" 

является НЕ собирается выводить только foo. На самом деле вы получите в качестве выходного

<?php echo 'foo' ?> 
+2

любая работа вокруг? –

0

оценки кода PHP в строку с помощью функции Eval(): этот пост Execute PHP code in a string

<?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 } ?>