【问题标题】:file_get_contents to fetch section of PHP filefile_get_contents 获取 PHP 文件的部分
【发布时间】:2012-10-07 19:21:58
【问题描述】:

我有以下代码:

<?php 
$path=$_SERVER['HTTP_HOST'].$_SERVER[REQUEST_URI];
$test=file_get_contents('http://www.domain.com/test.php?i='.$path);
echo $test;
?>

我想根据 $path 变量(访问 test.php 文件的 url)获取并插入 test.php 文件的特定部分。

我该怎么做?我在正确的轨道上吗?我不知道如何设置我的 text.php 文件,以便该函数回显访问它的网页的正确部分。我该怎么做呢?或者,还有更好的方法? (test.php 不是本地文件)

谢谢!

【问题讨论】:

  • 让我做对了:您想从另一个站点获取一些 PHP 代码并将其作为 PHP 代码在您的代码中运行?你知道这有多大的安全风险吗?此外,如果代码不会改变,那么每次加载页面时都通过网络下载它也是一种巨大的带宽浪费。另外它会很慢。非常非常慢。
  • 我想要做的是获取 PHP 文件的内容并将其中的一部分放在正在访问它的站点上。因此上面的代码将在许多不同的站点上,而 test.php 文件将在 domain.com 上。根据访问它的站点的 URL,我希望它获取 test.php 文件的不同部分(因此包含 $path)。 test.php 文件的内容会定期更改,这就是我想这样做的原因。谁能解释一下如何或是否有更好的方法?谢谢
  • 要明确一点:通过 URL 访问它会在远程服务器上运行代码并向您发送程序的输出。你想要那个还是你想下载实际的代码?从问题(或您的评论)中,您想要哪一个并不完全清楚。但如果你想下载代码,我的建议是不要这样做。
  • 抱歉不清楚。我想要做的是获取 PHP 文件的纯文本并插入到运行上述代码的页面中。因此,如果 www.domain.com/test.php 包含 example text or HTML content 并且 file_get_contents 代码在 domain2.com/index.php 上,“example text or HTML content”应该插入到 index.php 的源代码中。
  • 我可能完全错误地处理了这个问题,如果让您感到困惑,非常抱歉。

标签: php file-get-contents


【解决方案1】:

在我看来,您正试图根据访问它的任何脚本在 test.php 上显示动态信息(例如 html 或文本)。从那里,您想从 test.php 获取信息并通过提取源代码并回显它来将其传递回 index.php?如果我错了,请纠正我。

这可以使用 $_GET 变量来实现。通过将?i= 添加到 URL 的末尾,您已经朝着正确的方向前进。

这样的事情应该可以帮助您大致实现您想要的: (test.php)

if (isset($_GET['i]') {
    switch ($_GET['i']) {   
        case 'http://www.domain2.com/index.php':
            echo 'You\'re on domain2.com';
            break; 
        case 'http://www.domain3.com/index.php':
            echo 'You\'re on domain3.com';
            break;
    }
}

index.php 应该可以正常工作,除非变量中存储的有关当前页面路径的数据不正确。

【讨论】:

  • 我其实是想在domain2.com、domain3.com等页面上显示动态信息。所有信息都将放置在 test.php 文件中,但将根据访问它的站点有选择地提取它以显示文件的预定义部分。那么在 domain2.com 上,与在 domain3.com 等上获取和插入的信息不同,会在源代码中获取和插入不同的信息。如何做到这一点?
  • 我发布的解决方案将满足您的需求。将它放在 test.php 中。在您的 index.php 文件中, file_get_contents() 将 html 从 test.php 保存到一个变量,然后您在里面回显该变量(本质上,您正在显示 test.php (它是根据访问它的网页动态生成的) index.php)。您正在 index.php 上动态显示来自 test.php 的动态信息。
猜你喜欢
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 2016-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
相关资源
最近更新 更多