我一直坚持如何将test.php页面结果(在php运行之后)写入字符串:
testFunctions.php:
<?php
function htmlify($html, $format){
if ($format == "print"){
$html = str_replace("<", "<", $html);
$html = str_replace(">", ">", $html);
$html = str_replace(" ", "&nbsp;", $html);
$html = nl2br($html);
return $html;
}
};
$input = <<<HTML
<div style="background color:#959595; width:400px;">
<br>
input <b>text</b>
<br>
</div>
HTML;
function content($input, $mode){
if ($mode =="display"){
return $input;
}
else if ($mode =="source"){
return htmlify($input, "print");
};
};
function pagePrint($page){
$a = array(
'file_get_contents' => array($page),
'htmlify' => array($page, "print")
);
foreach($a as $func=>$args){
$x = call_user_func_array($func, $args);
$page .= $x;
}
return $page;
};
$file = "test.php";
?>
test.php的:
<?php include "testFunctions.php"; ?>
<br><hr>here is the rendered html:<hr>
<?php $a = content($input, "display"); echo $a; ?>
<br><hr>here is the source code:<hr>
<?php $a = content($input, "source"); echo $a; ?>
<br><hr>here is the source code of the entire page after the php has been executed:<hr>
<div style="margin-left:40px; background-color:#ebebeb;">
<?php $a = pagePrint($file); echo $a; ?>
</div>
我想将所有的php保存在testFunctions.php文件中,这样我就可以将简单的函数调用放入html电子邮件的模板中。
谢谢!
答案 0 :(得分:0)
您可以使用output buffering捕获包含文件的输出并将其分配给变量:
function pagePrint($page, array $args){
extract($args, EXTR_SKIP);
ob_start();
include $page;
$html = ob_get_clean();
return $html;
}
pagePrint("test.php", array("myvar" => "some value");
使用test.php
<h1><?php echo $myvar; ?></h1>
输出:
<h1>some value</h1>
答案 1 :(得分:0)
这可能不是您正在寻找的,但似乎您想构建一个各种引擎来处理电子邮件模板,您可以将PHP函数放入其中?您可以查看http://phpsavant.com/这是一个简单的模板引擎,它可以让您将php函数直接放入模板文件以及基本变量赋值。
我不确定printPage应该做什么,但我会像这样重写它只是为了使它更明显,因为函数调用数组有点复杂,我认为这就是真的发生了:
function pagePrint($page) {
$contents = file_get_contents($page);
return $page . htmlify($contents,'print');
};
您可以考虑删除htmlify()函数并使用内置函数htmlentities()或htmlspecialchars()
答案 2 :(得分:0)
似乎我原来的方法可能不是最好的方法。而不是对同一主题提出新问题,认为最好提供一种替代方法,看看它是否会导致我追求的解决方案。
testFunctions.php:
$content1 = "WHOA!";
$content2 = "HEY!";
$file = "test.html";
$o = file_get_contents('test.html');
$o = ".$o.";
echo $o;
?>
text.php:
<hr>this should say "WHOA!":<hr>
$content1
<br><hr>this should say "HEY!":<hr>
$content2
我基本上试图获得$ o来返回test.php文件的字符串,但我希望解析php变量。好像它是这样读的:
$o = "
<html>$content1</html>
";
或
$o = <<<HTML
<html>$content1</html>
HTML;
谢谢!