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' ?>" |
不会仅输出
1 | <?php echo 'foo' ?> |
使用函数eval()评估字符串中的代码php:这篇文章以字符串形式执行PHP代码
1 2 3 4 |
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调用嵌套在字符串中的背后是什么原因?