簡體   English   中英

將包含PHP標記的HTML寫入文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM