在这里有probs。
我需要将PHP脚本的输出写入HTML页面然后由DOMPDF处理,这样我就可以为一些朋友制作一个漂亮的小PDF。
当我使用file_get_contents来获取“捐赠者”PHP脚本的内容时,它会这样做 - 字面意思。它抓住了未经评估的PHP并让我按照自己的意愿去做。
我需要运行PHP脚本,然后将输出和file_put_contents放在某处。
谢谢, 罗布
答案 0 :(得分:5)
嗯,理想情况下,您可以配置PHP脚本,以便不是编写其内容而是构建一个巨大的字符串并返回它。这样你就可以简单地调用一个函数并获取一个包含你需要的信息的字符串。
如果目标脚本不受控制,您可以使用以下内容解决此问题:
ob_start();
include('script.php');
$contents = ob_get_contents();
ob_end_clean();
答案 1 :(得分:2)
通过http调用它以使其运行。
file_get_contents("http://localhost/my/script/file.php");
或者,从命令行运行它:
php -f /path/to/my/script/file.php
答案 2 :(得分:1)
两个快速解决方案。第一种是设置PHP脚本以从URL运行,然后使用用户file_get_contents
或curl
函数来下载页面。这将为您提供一个包含正确内容的字符串。
$string = file_get_contents('http://example.com/myscript.php');
第二种是使用include
并输出缓冲。输出缓冲采用任何echo
或print
个参数,并将其内容存储在内存中,而不是输出到浏览器/屏幕。
ob_start(); //start output buffering
include("myscript.php"); //script will run in the current context, but output will be stored in memory
$string = ob_get_clean(); //stored output will be fetched into $string, and buffering ended
答案 3 :(得分:0)
您可以通过几种不同的方式来实现:
1)通过它的URL(通过Web浏览器)而不是文件路径获取脚本。
2)使用eval
3)使用output buffering并将脚本包含在当前脚本中。例如:
ob_start();
include('script.php');
$result = ob_get_clean();
4)使用shell_exec('php -f script.php');