是否可以执行PHP脚本并在提供结果之前将结果包含在另一个脚本中?

时间:2010-12-16 18:36:12

标签: php apache http client-server

我在Apache服务器上运行了一个php脚本http://example.com/myapp/myscript.php。我从移动应用程序调用此URL,脚本执行其逻辑,然后将HTTP标头和正文设置为JSON字符串(移动应用程序稍后会解析和处理)。 现在我希望有一个URL http://example/myapp/mypage.php来检索myscript.php返回的数据,用html进行布局并提供页面。
我通过首先将页面提供为空来实现结果,然后通过Ajax调用myscript.php并使用Ajax响应在客户端完成布局,但我想知道是否可以仅在一个http请求中执行此操作:
1 /调用mypage.php,它将在服务器端调用并执行myscript.php 2 /检索mypage.php中的JSON数据,解析它并将其放在服务器端
3 /提供页面

PHP include不起作用,因为它只包含代码,而不首先执行它。

谢谢。

4 个答案:

答案 0 :(得分:1)

也许我错过了这个问题,但为什么你不能只需要()你需要的.php文件,然后调用一个函数呢?

<?php
require('myscript.php');
$foo = myscript_class::function();
?>

答案 1 :(得分:0)

您可以使用输出缓冲区进行装配。像这样:

ob_start();
//do your code
$_SESSION['page_buffer'] = ob_get_clean();

然后在下一页读取该会话变量。

那就是说,为什么不直接拨打mypage,并让它include("myscript.php");

答案 2 :(得分:0)

我不完全理解这个问题,但是如果你想要获得该页面的JSON输出,你可以file_get_contents()页面(使用URL,而不是路径),然后用它解析它PHP。或者,您可以使用输出缓冲区包含()页面,将JSON保存在变量中。

ob_start();
include 'file.php';
$output = json_decode(ob_get_clean(), true);

答案 3 :(得分:0)

我认为PHP包含应该有效。如果包含它,它会在PHP文件中执行代码。

检查此网址:http://php.net/manual/en/function.include.php

检查示例5:它返回值而不是代码。