我正在尝试使用调用数据库中的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)); ?> "
?>
这段代码的第一行与第一个代码字段是相同的回声,它不是重复的,它只是为了帮助和了解问题所在。
我已经修复了一些引号,但它在第一个回声的行中出现了错误。
这是我见过的最丑陋的代码。。。
<?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;
是的,echo中的PHP将NOT执行。PHP不是一种"递归可执行"语言。如果您正在输出一个字符串,则该字符串中嵌入的任何php代码都不会执行——它将被视为输出的一部分,例如
echo "<?php echo 'foo' ?>"
是NOT将仅输出foo
。你实际上会得到作为输出
<?php echo 'foo' ?>
您误解了PHP的工作原理。PHP由服务器处理。当它遇到您的脚本时,它会看到以下内容:
<?php echo "some long piece of text that you have told PHP not to look at" ?>
试图将PHP调用嵌套在字符串中的原因是什么?
使用函数eval()在字符串中评估代码php:这篇文章在字符串中执行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 } ?>