我在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不起作用,因为它只包含代码,而不首先执行它。
谢谢。
答案 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:它返回值而不是代码。