2

我正在尝试使用以下方法调用它在我的数据库中的 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)); ?> "
 ?>

此代码的第一行与第一个代码字段的回显相同,它没有重复,它只是为了帮助和了解问题所在。

我已经修复了一些引号,但它在第一个回声的行中给出了错误。

4

4 回答 4

5

这是我见过的最丑陋的代码......

<?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语法。

于 2013-07-04T19:30:56.987 回答
2

不要这样做。多行回声,特别是当你有嵌入的引号时,很快就会成为一种痛苦。请改用HEREDOC

<?php 

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

是的,您的 echo 中的 PHP 将不会执行。PHP 不是一种“递归可执行”的语言。如果您正在输出一个字符串,则不会执行该字符串中嵌入的任何 php 代码 - 它将被视为输出的一部分,例如

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

不会只输出foo. 你实际上会得到输出

<?php echo 'foo' ?>
于 2013-07-04T19:29:07.130 回答
0

您误解了 PHP 的工作原理。PHP由服务器处理。当它遇到您的脚本时,它会看到以下内容:

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

尝试将 PHP 调用嵌套在字符串中的原因是什么?

于 2013-07-04T19:27:58.260 回答
0

使用函数 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 } ?>
于 2016-03-19T02:49:15.387 回答