用PHP编写PHP代码

时间:2011-08-05 15:54:15

标签: php echo

如何在PHP中编写PHP代码?我想这样做,但它不起作用:

<?php echo '<?php echo \'aoeu\'; ?>'; ?>

希望有人可以给我一个提示,

非常感谢

14 个答案:

答案 0 :(得分:12)

<?php echo htmlentities('<?php echo \'aoeu\'; ?>'); ?>

答案 1 :(得分:3)

如果您输出一些复杂的代码,请务必使用像smarty这样的模板引擎..否则您的代码将看起来完全混乱。

我曾经修改了推进ORM,它输出PHP代码而不使用模板引擎。它基于XML配置文件生成所有模型类。他们的代码很乱。不要这样做。

答案 2 :(得分:2)

<?php echo '&lt;?php echo \'aoeu\'; ?&gt;'; ?>

如果你没有逃避'&lt;'和'&gt;'它们将被打印为html标签。

答案 3 :(得分:2)

试试这个

&LT;&LT;&LT;是Heredoc

<?php

echo <<< EOF

<?php
echo <<< EOF
EOF;
?>

EOF;

?>

答案 4 :(得分:1)

如果你使用highligh_file你可以使用highlight_string或highlight_file你必须指明你要显示的php文件

<?php
highlight_string('<?php echo\'hello\' ?>');
highlight_file("D:\local\ajax_bottom.php");
?>

或者你可以将两者都结合起来为我提供最佳解决方案:

<?php

$string=highlight_file("D:\local\hatirlaticilar\Adminn\autocomplete\gethint.php");
highlight_string("$string");
?>

或者你可以以不同的方式结合:

<?php


highlight_string(highlight_file("D:\local\hatirlaticilar\Adminn\autocomplete\gethint.php"));
?>

答案 5 :(得分:0)

看看nowdoc

答案 6 :(得分:0)

您需要做的就是转义字符串。你做得对了。除非您输出的是HTML,否则请使用htmlspecialchars()

答案 7 :(得分:0)

<?php echo htmlspecialchars('<?php echo \'aoeu\'; ?>'); ?> 

http://sandbox.phpcode.eu/g/b1316.php

答案 8 :(得分:0)

我假设您正在尝试展示<?php ?>代码?如果是这样,请使用&lt代替<

答案 9 :(得分:0)

这不能以您发布的方式直接完成。

PHP是一种服务器端脚本语言,我相信你知道。这意味着它在向用户显示页面之前执行。

实际上,您的代码是将文本写入浏览器,而不是写入服务器。执行其他php代码生成的php代码的唯一方法是将新代码写入文件,然后在页面加载后运行该文件。

答案 10 :(得分:0)

示例1

<?php       echo '<pre>', highlight_string('<?php
include($_SERVER["DOCUMENT_ROOT"] . "/myclass/myform.php");
?>', true), '</pre>';       ?>

示例2
php manual highlight-string

答案 11 :(得分:0)

我不确定php引擎需要什么(我会用其他海报的话来说明htmlentities有效),但是使用vim?&gt;最后将使它看起来像PHP代码部分已经结束。

相反,我只是这样做:

string = "<? echo somefunc('strparam'); ?" . ">";

编辑很高兴。如果有更好的方法,请告诉我!

答案 12 :(得分:0)

 echo '<div class="row"><div class="col-md-6 col-md-offset-3"><div class="alert alert-success" role="alert"><p style="text-align: center;">'. php code goes here .'</p></div></div></div>';

答案 13 :(得分:0)

作为许多答案的摘要,您可以通过将所有特殊字符更改为其对应的html特殊代码来echoprint php和html代码。字符串中至少所有“ << / strong>”个字符应转换为“ &lt ”。有很多方法可以做到这一点:

echo htmlspecialchars("<b>\"á'");
>> &lt;b&gt;&quot;á'

这将转换回显代码所需的所有字符。

echo htmlentities("<b>\"á'");
>> &lt;b&gt;&quot;&aacute;'

这与htmlspecialchars相同,但是还会转换具有相应html代码的所有字符。

值得注意的是singledouble quotes的行为不同,因为single quotes不会解释其中的变量,也不会读取转义字符(单引号本身除外)。 / p>

$foo = "value";

echo "I replace $foo with value and \n with line break";
>> I replace value with value and 
   with line break

echo 'I don\'t replace $foo with value nor \n with line break';
>> I don't replace $foo with value nor \n with line break

还可以使用 heredoc 语法,该语法与double-quoted字符串相同,但无需在字符串内转义

echo <<<EOF
Your "string' here
EOF;

nowdoc 语法相同,但模仿single-quoted字符串

echo <<<'EOF'
Your "string' here
EOF;

您可以在这里阅读所有有关这些内容: https://www.php.net/manual/es/language.types.string.php