【问题标题】:Is there a way to save regular HTML/CSS/JS as a php variable?有没有办法将常规 HTML/CSS/JS 保存为 php 变量?
【发布时间】:2021-05-16 06:21:46
【问题描述】:

我熟悉 HEREDOC,但这不是我想要使用的。
我希望的是一种在 PHP 文件中编辑 HTML/CSS 的方法,这样它在技术上就不是一个字符串,这样我就可以在我的文本编辑器中获得正确的 HTML/CSS/JS 提示和自动完成。尝试在 HEREDOC 中进行编辑时,它被视为一个字符串,因此我没有得到任何命中,这会导致很多语法错误。
像这样的东西:(就像使用 if 语句括号)

<?php
   $html='
?>

<style>
   h4{
      font-weight:700;
   }
</style>

<h4>HTML</h4>

<?php
   ';

echo $html;

?>

有没有办法将 html/css 放在另一个文件中,然后将其包含在一个 concat 字符串中?

<?php
   $html=''.include('html.php').'';
   echo $html;
?>

【问题讨论】:

标签: php html string heredoc


【解决方案1】:

您可以使用output buffering - 在这个简化的示例中,您将从文件view.php 中获取html,并将其分配给$html

<?php
$html = getHtml('view.php');
echo $html;

function getHtml(string $file)
{
    ob_start();
    include $file;
    return ob_get_clean();
}

ob_start() 开启输出缓冲 ob_get_clean() 获取当前缓冲区内容(以字符串形式返回)并删除当前输出缓冲区

【讨论】:

    【解决方案2】:

    就 PHP 而言,HTML 和 JS 只是文本,因此您可以将它们存储在 PHP 变量中,就像存储任何字符串一样。

    $html = '<style>
       h4{
          font-weight:700;
       }
    </style>
    
    <h4>HTML</h4>';
    

    要将 HTML 从单独的文件加载到变量中,您将如何执行取决于文件。如果包含需要执行的 PHP 代码,请关注jibsteroos 回答关于output buffering

    如果文件不包含任何PHP,可以使用file_get_contents():

    $html = file_get_contents('html.php');
    

    注意:如果html.php 包含任何PHP,它将被读取为文本而不是被执行。

    【讨论】:

      最近更新 更多