2013-07-04 180 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)); ?> " 
?> 

這段代碼的行一個相同的回聲作爲第一個代碼字段,它不重複,它的存在只是爲了幫助和了解問題出在哪裏。

我已經修復了一些引號,但是它在第一個回聲的行中給出了一個錯誤。

回答

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

使用函數eval()評估代碼PHP字符串:這篇文章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 } ?>