【问题标题】:Retrieving a PHP file using file_get_content(), cURL() or fopen() all return PHP code itself使用 file_get_content()、cURL() 或 fopen() 检索 PHP 文件都返回 PHP 代码本身
【发布时间】:2011-10-25 15:42:41
【问题描述】:

我正在使用 file_get_content()、cURL() 或 fopen() 检索 PHP 文件,它们都返回 PHP 代码本身。它不仅仅检索 PHP 输出的 HTML 代码本身。请问我该如何克服?

它基本上是为我的客户生成一个从他们的 CMS 生成的 HTML 时事通讯预览。但是我希望他们能够将它生成的 HTML 复制并粘贴到 Mailchimp 等中。它只是获取整个 PHP 源代码以及 HTML :(

希望你能帮忙。

感谢期待。

皮特

【问题讨论】:

  • 你能展示一些你用来做这个的代码吗?

标签: php curl fopen file-get-contents


【解决方案1】:

尝试读取本地 PHP 文件将返回其源代码,因为它是“本地”文件,并且不会被服务器解析。

如果您想读取 PHP 文件的结果,您必须从服务器请求它。 意思而不是做:

$data = file_get_contents('x.php');

你应该这样做

$data = file_get_contents('http://mysite.com/path/x.php');

会在服务器中解析,然后返回给你。

干杯! :)
谢。

【讨论】:

  • 嗨!谢谢,我也试过了,但是 PHP 代码没有显示,但也没有执行,这意味着 HTML 模板中没有显示任何动态内容。明白了吗? HTML 模板 (newsletter.php) 引入 $_SESSION 变量,它用这些变量填充 HTML。是因为通过 file_get_contents() 调用文件时没有保留会话吗?
  • 如果不看您的 PHP 文件实际做了什么,就很难说。如果您的文件需要会话信息,则必须使用 CURL 并在那里提供数据,这有点棘手。如果您将源代码上传到 pastebin.com 或类似的网站会更容易,我们可以看到是什么;-)
  • 只是提醒您接受答案,如果您觉得它对您有用 ;-) 干杯。
【解决方案2】:

这将在本地主机中工作。试试这个:$url = "http://localhost/box.php";

function isAllBoxContents($boxid,$pageNum)
{
$postdata = http_build_query( array('myBoxid' => "$boxid", 'isAllBoxContents' => "all",'pageNum' => "$pageNum",'innerReq' => true ));
$opts = array('http' =>    array( 'method'  => 'POST', 'header'  => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata ));
$context  = stream_context_create($opts);
$url = "http://localhost/box.php";
$result = file_get_contents( $url, false, $context);
$cacheFileName = "isAllBoxContents".$boxid.$pageNum;
cacheMe($cacheFileName,$result);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 2014-01-01
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多