我正在尝试使用以下内容调用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)); ?> "
?>
此代码的第一行与第一个代码字段的回显相同,它不重复,只是为了帮助并了解问题所在。
我已经修复了一些引号,但它在第一个回声的行中给出了一个错误。
答案 0 :(得分:4)
这是我见过的一些最丑陋的代码......
<?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语法。
答案 1 :(得分:1)
不要这样做。多线回波,特别是当你有嵌入式报价时,很快就会变成一种痛苦。请改用HEREDOC。
<?php
echo <<<EOL
<h3>Hello</h3>
...
<div class"indios">
...
EOL;
是的,回声中的PHP将 NOT 执行。 PHP不是“递归可执行”语言。如果你输出一个字符串,那么嵌入在该字符串中的任何php代码都不会被执行 - 它将被视为输出的一部分,例如
echo "<?php echo 'foo' ?>"
NOT 仅输出foo
。你实际上会得到输出
<?php echo 'foo' ?>
答案 2 :(得分:0)
您误解了PHP的工作原理。 PHP由服务器处理。当遇到您的脚本时,它会看到以下内容:
<?php echo "some long piece of text that you have told PHP not to look at" ?>
尝试在字符串中嵌套PHP调用的原因是什么?
答案 3 :(得分:0)
使用函数eval()在字符串中计算代码php:这篇文章Execute PHP code in a string
ON
如果您需要字符串中的代码缓冲区输出,也可以使用ob_start()方法:
<?php
$motto = 'Hello';
$str = '<h1>Welcome</h1><?php echo $motto?><br/>';
eval("?> $str <?php ");