【问题标题】:How To Get 'echo'-ed content from URL-external-php-file如何从 URL-external-php-file 获取 'echo'-ed 内容
【发布时间】:2011-03-10 07:32:27
【问题描述】:

我在 2 个不同的服务器上有 2 个文件:

file1.php - 位于站点 1 - 我传递一个参数,脚本回显答案取决于传递的参数(是函数的函数) - 当我通过像

这样的浏览器访问文件时,everithink 没问题
   http://site1.com/file1.php?parameterValue

file2.php - 位于站点 2 - file2 必须向 file1.php 发送一个参数并从它作为变量获取回显输出。

我尝试了 3 种不同的方法,但都没有奏效。

方式 1。--------

function get_data($url)
{
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}  

$f="http://site1.com/file1.php?parameterValue";
$returned_content = get_data($f);
echo "=== $returned_content ===";exit;

方式2。--------

$f="http://site1.com/file1.php?parameterValue";
$returned_content='';
$file = fopen ($f, "r");
if (!$file) {
    echo "<p>Unable to open remote file.\n";
    exit;
    }
while (!feof ($file))  $returned_content.= fgets ($file, 1024);
fclose($file);
echo "=-= $returned_content =-=";exit;

方式 3。--------

$f="http://site1.com/file1.php?parameterValue";
$returned_content=implode('',file($f));
echo "=-= $returned_content =-=";exit;

但是 $returned_content 是空字符串 ...

有人可以帮我吗? 提前致谢!

Hristo

【问题讨论】:

    标签: php get external


    【解决方案1】:

    如果你尝试会发生什么:

    <?PHP
    $f="http://site1.com/file1.php?parameterValue";
    $data = file_get_contents($f);
    echo $data;
    

    ?

    【讨论】:

      【解决方案2】:

      您可以使用 CURL 修改您的第一个版本以检查是否发生任何错误。照原样,您盲目地假设 curl 请求有效并且只返回 curl_exec() 返回的任何内容。

      至少,你应该有类似的东西:

      $data = curl_exec($ch)
      $err = curl_error($ch);
      curl_close($ch);
      if ($data === FALSE) { // curl_exec returns boolean FALSE if something blew up
         return($err);
      } else {
         return($data);
      }
      

      【讨论】:

      • 谢谢马克 B !这对方式 1 的脚本非常有用
      【解决方案3】:

      我测试了所有这三种方法并且都使用了

      $f = "http://google.com/";
      

      我会检查site1 和file1.php 的配置。可能是基于 User-Agent 阻塞请求?

      【讨论】:

      • 谢谢你,我的朋友!我在 file1 中有一个脚本错误现在一切正常!
      【解决方案4】:

      这是我的错——我在 file1 中的脚本很复杂,我错过了它所依赖的另一个参数。因此,在我更正脚本后一切正常。

      方式 2 和 3 工作正常; 方式 1 我没有测试。使用 MARC B

      的建议是 goog 的想法

      TIMDEV 设想的方式也可以正常工作。

      感谢大家对我这么好心的帮助!

      谢谢朋友们!

      最好的问候 赫里斯托

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-29
        • 2014-09-19
        • 1970-01-01
        • 2012-08-27
        • 1970-01-01
        • 2012-12-20
        相关资源
        最近更新 更多