[英]Writing HTML that contains PHP tags to file
我認為我想做的事情一定是不可能的。 難以置信 或非常簡單,而我只是不知道如何向Google正確表達我想要的內容。
我想做的是以下幾點:
出於模板的目的,我將HTML輸出到文件中。 但是,我希望文件包含PHP標記-而不是PHP代碼的解析值(此值將根據輸出文件中包含的腳本而變化)-而是實際的<?php ?>
標記本身-包含未修改的代碼,這樣,代碼在運行時仍可執行。
這是我要輸出的示例:
<html>
<body>
<img src="<?php echo IMG_PATH;?>img.jpg" />
</body>
</html>
我得到的是錯誤的組合,這取決於我使用的方法。 基本上,我需要能夠將可解析的PHP代碼寫入HTML文件。 現在,這是否是一個好主意尚有待商,,而我目前對此話題不太感興趣。 我只想知道是否存在理智的解決方案。
我想出了以下瘋狂的解決方案:
$content='<html><body><img src="zxzxzx?php echo IMG_PATH; ?qjqjqj" />';
file_put_contents($file,$content);
$command='perl -p -i.bktmp -e "s/zxzxzx/</g" '.$file.' 2>'.$path.'error.log';
$command2='perl -p -i.bktmp -e "s/qjqjqj/>/g" '.$file.' 2>'.$path.'error.log';
exec($command);
exec($command2);
現在,一方面,這感覺非常聰明。 而且,它也感覺很瘋狂。 有沒有更好/可行的方法來做到這一點?
您在誤解PHP的運行方式。 如下代碼:
<?php
echo 'This string <?php echo 'contains' ?> some PHP code';
將產生輸出
This string <?php echo 'contains' ?> some PHP code
您不會得到:
This string contains some PHP code
PHP的解析器不是遞歸的。 嵌入在PHP代碼內部的PHP代碼(例如,上面的字符串中)不會被視為PHP代碼-它只是一些文本。
如果您想寫出一些PHP代碼,只需將其寫出即可:
$string = 'This string <?php echo 'contains' ?> some PHP code';
file_put_contents('file.php', $string);
您無需為要寫入字符串中的PHP代碼采取任何特殊措施,它只是“工作”。
話雖如此,如果您曾經將該字符串放入可以作為代碼求值的上下文中,例如
eval($string);
那么您將必須采取措施以防止PHP看到打開的<?php
標簽並切換到“代碼模式”。
相反,您的HTML文件必須是PHP文件。 見下文:
檔案:test.php
<html>
<head>
</head>
<body>
<? echo 'My PHP embedded in HTML'; ?>
<img src="<? echo $imagePath; ?>"/>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.