如何从php页面获取返回的文本

如何从php页面获取返回的文本,php,Php,非常简单的php问题 例如,demo.php只返回如下“hello”这样的文本 如何从另一个php页面获取此文本 更新: 实际上,我的意思是页面像这样输出“print'hello'”EDIT:我最初假设在脚本上执行file\u get\u contents会获取输出(而不是代码)。如果需要输出,则需要指定完整URL: $str = file_get_contents("http://example.com/demo.php"); 如果你接受一个更详细的答案,可能会更好 此外,请参见以下内容:

非常简单的php问题

例如,demo.php只返回如下“hello”这样的文本

如何从另一个php页面获取此文本

更新:


实际上,我的意思是页面像这样输出“print'hello'”

EDIT:我最初假设在脚本上执行
file\u get\u contents
会获取输出(而不是代码)。如果需要输出,则需要指定完整URL:

$str = file_get_contents("http://example.com/demo.php");

如果你接受一个更详细的答案,可能会更好

此外,请参见以下内容:


PHP解释页面时返回文本——这意味着您必须:

  • 从命令行运行PHP
  • 或者通过您的Web服务器调用该页面——这是您通常会做的事情

在第二种情况下,您需要发送HTTP请求并获取结果,这可以使用(如果启用了配置指令)完成:


另一个解决方案是使用curl,当禁用
allow\u url\u fopen
时特别有用;例如,请参见函数页面上的示例。

您所说的“返回hello”是什么意思

如果它真的返回

return "hello";
您可以通过如下方式获得值:

$var = include 'demo.php'
如果它
echo
es该值,则可以读取其输出:

$var = file_get_contents("http://host/demo.php");
它是
返回“hello”
,输出
hello
还是仅仅包含
hello
?这三种情况都是不同的问题


如果它
返回“hello”因此:

<?php
return "hello";
<?php
echo "hello"; // or print "hello";
hello
您必须使用输出缓冲来捕获结果:

<?php
ob_start();
include('secondFile.php');
$fileValue = ob_get_contents();
ob_end_clean();
<?php
$fileValue = file_get_contents('secondFile.txt');
您只需阅读结果:

<?php
ob_start();
include('secondFile.php');
$fileValue = ob_get_contents();
ob_end_clean();
<?php
$fileValue = file_get_contents('secondFile.txt');

文件获取内容
是最简单的解决方案,但是curl更有效。它更快、更安全、更灵活

function file_get_contents_curl($url){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,1);
    $content = curl_exec($ch);
    curl_close($ch);
    return $content;
}

$page = file_get_contents_curl('demo.php');

Doh,它是“返回那个值”作为“它只包含那个字符串”?:)我的理解是‘demo.php的输出是字符串“hello”’。但这将获取demo.php的全部源代码,不是吗?另一个解决方案是以只读模式-->使用
fopen('file','r')打开文件-1:不要将
文件\u get\u contents()
与url一起使用<出于安全原因,已禁用代码>允许url打开
建议的设置。我不同意这个建议,配置变量不应该只设置为照顾不好的开发人员
allow\u url\u fopen
很方便,而且本身没有任何危害。即使所有东西都关闭了,您也可以编写不安全的代码。-1:不要将
文件\u get\u contents()
与url一起使用<出于安全原因,已禁用代码>允许url打开
建议的设置。建议最好保持这种方式。@Andrew:我喜欢在URL中使用
file\u get\u contents
(和其他函数),而且这样做从来没有任何问题<代码>允许url打开
在默认情况下似乎已启用(请参阅);;另一方面,我不会对
require
/
include
使用URL访问,这意味着我会禁用
allow\u URL\u include
指令,这也是它的默认值。@Pascal MARTIN:即使
allow\u URL\u include
被禁用,拥有
allow\u url\u fopen
也会使您的网站在没有正确输入验证的情况下容易受到XSS攻击。请参见PHP安全联盟网站上关于
allow_url_fopen
的以下页面:@Andrew:关于“不要进行正确的输入过滤”和“错误的输入过滤”的部分很重要,在该页面上;-)
allow_url_fopen
本身并不是一个安全风险,它的使用不当会导致问题;;如果你认为任何可能被滥用并且可能导致安全问题的东西不应该被使用,那么,你绝对不应该开发任何网站,在任何网站上冲浪,甚至打开你的计算机;关于XSS,如果没有正确的输入验证/输出转义,那么作为
$\u GET
传递的任何变量都可能被滥用……我不会说PHP中不存在最佳实践(这很糟糕);;我完全明白你的意思,没问题;;但我会继续使用
file\u get\u contents
来访问URL,因为我认为它比curl更容易,而且不会冒着遇到可移植性问题的风险,像使用任何其他函数(如curl.Ahmet)一样过滤/验证/转义数据,在这种情况下,请更改您接受的答案。我相信我的答案是正确的。哇,惊人的答案,非常好;)