关于html:PHP echo echo内部

PHP echo inside echo

我正在尝试使用以下方法调用数据库中的HTML / PHP内容:

1
<?php echo $row_content['conteudo']; ?>

调用该行时,HTML会正确显示,但PHP不会。
我相信这是主回波内部回波的原因。

1
2
3
4
5
6
7
8
9
<?php echo"
Hello
<?php do { ?>
 
    \">
      <img src=\"galeria/indios/<?php echo $row_indiosct['foto']; ?>\" alt=\"<?php echo $row_indiosct['nome']; ?>\" />
      <br /><?php echo $row_indiosct['nome']; ?>
  <?php } while ($row_indiosct = mysql_fetch_assoc($indiosct)); ?>"

 ?>

该代码的第一行与第一个代码字段具有相同的回显,这里不再重复,它只是为了寻求帮助并了解问题出在哪里。

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


那是我见过的最丑陋的代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
echo '
Hello'
;

while ($row_indiosct = mysql_fetch_assoc($indiosct))
{
  echo '
   
     
        <img src="galeria/indios/'
. $row_indiosct['foto'].'" alt="'.$row_indiosct['nome'].'" />
      <br />'
.$row_indiosct['nome'].'
    '
;
}
?>

您也可以使用HEREDOC语法。


不要这样多行回声,尤其是当您有嵌入的引号时,会很快变得很痛苦。请改用HEREDOC。

1
2
3
4
5
6
7
8
<?php

echo <<<EOL
Hello
...

...
EOL
;

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

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

不会仅输出foo。您实际上会得到输出

1
<?php echo 'foo' ?>


使用函数eval()评估字符串中的代码php:这篇文章以字符串形式执行PHP代码

1
2
3
4
<?php
$motto = 'Hello';
$str = 'Welcome<?php echo $motto?><br/>';
eval("?> $str <?php");

http://codepad.org/ao2PPHN7

同样,如果您需要字符串中的代码缓冲区输出,也可以使用ob_start()方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php ob_start(); ?>
Hello;

<?php
  while ($row_indiosct = mysql_fetch_assoc($indiosct)){ ?>


 
    <img src="galeria/indios/'<?php echo $row_indiosct['foto'].'" alt="'.$row_indiosct['nome'].'" />
  <br />'.$row_indiosct['nome'].'
';

<?php } ?>


您误解了PHP的工作方式。 PHP由服务器处理。遇到脚本时,将看到以下内容:

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

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