[英]How to echo a string which contains <?php ?>
我想生成一個包含HTML和一些php命令的php頁面。 問題是,當我提交下面的代碼時,我得到了這個輸出
<?php echo '$stfromyearErr '?><?php echo '$stfrommonthErr '?><?php echo '$stfromdayErr '?> <?php echo '$sttoyearErr '?><?php echo '$sttomonthErr '?><?php echo '$sttodayErr '?>
而不是php命令。 我該如何解決?? 謝謝!!
<?php
$page = "<html lang='en'> <head> <meta charset='utf-8' /> </head>
<body><table width='990' border='0' align='center'><tr><td width='54%' colspan='2'>
<span class='error'><?php echo '\$stfromyearErr ';?><?php echo '\$stfrommonthErr
';?><?php echo '\$stfromdayErr ';?> <?php echo '\$sttoyearErr ';?
><?php echo '\$sttomonthErr ';?><?php echo '\$sttodayErr ';?></span></td>
</tr></table> </body></html>";
echo $page;
?>
您正在將PHP標簽標記為<?php
,然后大概在瀏覽器中顯示它。 它看起來像在瀏覽器中的PHP的代碼,因為瀏覽器將呈現<
作為<
但不是PHP代碼。 這只是一些文字。
PHP不是遞歸可執行的,例如
<?php
echo "<?php echo 'foo '; ?>";
?>
會回聲<
?
, p
等...,而不僅僅是foo
。
你可以做類似的事情
<?php
$foo = "<?php echo 'hello world!'; ?>";
file_put_contents('hello.php', $foo);
?>
沒有任何問題。 只要您生成的文件實際上是由PHP執行的(例如,不要將其命名為“ hello.html”),那么PHP就不會知道(甚至不在乎)該腳本是由其他php代碼生成的。
您將變量封裝在單引號中,因此它們以純文本形式輸出,只需刪除任何echo語句上的逗號即可解決此問題。
<?php echo $stfromyearErr; ?>
當您要輸出PHP代碼(包括標記和語法高亮顯示)時,可以使用函數highlight_string()
。 這里的文件
<?php
highlight_string("<?php echo '$stfromyearErr '?><?php echo '$stfrommonthErr '?><?php echo '$stfromdayErr '?> <?php echo '$sttoyearErr '?><?php echo '$sttomonthErr '?><?php echo '$sttodayErr '?>");
?>
有兩件事,首先刪除引號:
<?php
$page = "<html lang='en'> <head> <meta charset='utf-8' /> </head>
<body><table width='990' border='1' align='center'><tr><td width='54%' colspan='2'>
<span class='error'><?php echo $stfromyearErr ?><?php echo $stfrommonthErr
?><?php echo $stfromdayErr ?> <?php echo $sttoyearErr ?
><?php echo $sttomonthErr ?><?php echo $sttodayErr ?></span></td>
</tr></table> </body></html>";
echo $page;
?>
但是,這將為您提供:
<?php echo your_var_1 ?><?php echo your_var_2 ?><?php echo your_var_3 ?> <?php echo your_var_4 ? ><?php echo your_var_5 ?><?php echo your_var_6 ?>
這是因為php標記是多余的:您已經啟動了php,並在php中回顯了這些標記。
如果不可避免,請嘗試按以下方式替換它們:
echo str_replace(" ?>", "", str_replace("<?php echo", "", $page));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.