2009-11-05 49 views
12

假设我有以下文件 - template.php执行PHP文件,并返回结果为一个字符串

<?php $string = 'Hello World!'; ?> 
<html> 
    <head> 
     <title>Test Page!</title> 
    </head> 
    <body> 
     <h1><?= $string; ?></h1> 
     <p>You should see something above this line</p> 
    </body> 
</html> 

我知道,我可以使用file_get_contents()来获取文件的内容为字符串,然后我可以根据需要操作。然而,file_get_contents()不执行PHP语句。

我已经成功地使用cURL来访问文件的渲染版本,但它看起来相当缓慢和笨重,给页面的​​执行增加了相当多的时间 - 我想这是由于正在执行DNS查找。

所以,我怎么能得到的template.php内容转换成字符串 - 同时具有有可用的PHP?

+0

你的意思是file_get_contents()对不对? – 2009-11-05 22:02:40

+0

我做了,谢谢你指出。 – EvilChookie 2009-11-05 22:11:25

回答

37

这应做到:

ob_start(); 
include('template.php'); 
$returned = ob_get_contents(); 
ob_end_clean(); 
+0

啊哈!疑难杂症!谢谢! – EvilChookie 2009-11-05 22:10:17

+0

当心尽管以来被列入该文件与它自己不执行,你可能会得到有趣的行为。 – 2011-05-03 18:55:29

+0

包括文件对其进行扫描,如果有PHP里面,它就像如果被叫独立执行。如果这不是你的意思,那么你能更具体吗? – bisko 2011-05-03 19:14:07

3

如果你不需要做这个 PHP,你可以执行命令行PHP脚本,并管道它到一个文本文件,如所以:

php -f phpFile.php > output.html 
+0

虽然这不是正确的答案,但肯定是有帮助的,将来就知道了。 – EvilChookie 2009-11-05 22:10:53

相关问题