PHP包括HTML和echo out变量

时间:2016-01-18 10:42:47

标签: php html string

我正在处理带有模板的脚本。所以我有这个PHP代码:

<?php
$string = "TEST";
echo(file_get_contents('themes/default/test.html'));
?>

我有这个HTML(test.html文件):

<html>
  <p>{$string}</p>
</html>

如何让PHP实际显示大括号内的变量?目前显示{$string}

P.S: 该字符串也可能是一个包含许多变量的对象,我将按以下方式显示它们:{$object->variable}

P.S 2:HTML必须保持原样。这有效:

$string = "I'm working!"
echo("The string is {$string}");

我需要使用相同的原则来显示值。

5 个答案:

答案 0 :(得分:1)

您可以使用以下代码来获得所需的结果:

<?php
$string = "TEST";
$doc = file_get_contents('themes/default/test.html'));
echo preg_replace('/\{([A-Z]+)\}/', "$$1", $doc);
?>

P.S。请注意,它会假设每个字符串都包含在 {} 中 有一个变量定义。因此,上面的代码中实现了无错误检查。此外,它假设所有变量只有 alpha 字符。

答案 1 :(得分:0)

使用echo非常简单。

<html>
  <p>{<?php echo $string;?>}</p>
</html>

更新1:

阅读了这么多评论后,找到了解决方案,试试这个:

$string = "TEST";

$template = file_get_contents('themes/default/test.html', FILE_USE_INCLUDE_PATH);

$page = str_replace('{$string}',$string,$template);

echo $page;

答案 2 :(得分:0)

所有PHP必须在<?php ?>块中,如下所示:

<html>
  <p><?php echo "{" . $string . "}";?></p>
</html>

答案 3 :(得分:0)

如果可以将替换保存在数组而不是普通变量中,则可以使用下面的代码。我正在使用类似的用例。

function loadFile($path) {
    $vars = array();
    $vars['string'] = "value";

    $patterns = array_map("maskPattern", array_keys($vars));
    $result = str_replace($patterns, $vars, file_get_contents($path));

    return $result;
}

function maskPattern($value) {
    return "{$" . $value . "}";
}

答案 4 :(得分:0)

如果您知道要在html中替换的变量,您可以使用PHP函数&#39; str_replace&#39;。对于您的脚本,

$string = "TEST";

$content = file_get_contents('test.html');
$content = str_replace('{$string}', $string, $content);

echo($content);