在网上转了两圈,得此法.可以将PHP程序执行后输出到浏览器的html文件获取.有了这个,就可以放心大胆地编译静态文件了,再不用担心读写一个巨大的字符串并且运算了.

  这段代码的执行原理,就是先用include函数将源代码读取执行,然后将缓冲区中的执行结果写到目标文件中

[php]JHNfZmlsZT0gInNvdXJjZS5waHAiOw0KJG9fZmlsZSA9ICJvYmplY3QuaHRtIjsNCi8v5riF56m657yT5Yay5Yy65bm25LiU5Yid5aeL5YyWDQpvYl9lbmRfY2xlYW4oKTtvYl9zdGFydCgpOw0KDQovL+ivu+WFpeaJp+ihjOa6kOaWh+S7tizojrflj5bmiafooYznu5PmnpwNCmluY2x1ZGUoJHNfZm5hbWUpOw0KJGxlbmd0aCA9IG9iX2dldF9sZW5ndGgoKTsNCiRidWZmZXIgPSBvYl9nZXRfY29udGVudHMoKTsNCg0KLy/muIXnqbrnvJPlhrLljLoNCm9iX2VuZF9jbGVhbigpOw0KDQovL+WwhuaJp+ihjOe7k+aenOWGmeWFpeebruagh+aWh+S7tg0KJGZwID0gZm9wZW4oJG9fZm5hbWUsIncrIik7DQppZihmd3JpdGUoJGZwLCRidWZmZXIpKSAgICAgZWNobyAi5omn6KGM5oiQ5Yqf77yBIjsNCmZjbG9zZSgkZnApOw==[/php]

使用这一段代码,需要注意:

  1、源文件不能有ob_end_clean();和 ob_start();语句

  2、且确保目标目录要有写权限。

  3、确保源文件可以正确的执行,如果源文件执行过程出现错误导致PHP执行中断,将无法生成html文件。

    比如:SQL查询失败后,用die()输出错误信息、include()或者require()包含文件出现错误等等