1

我正在建立网站和域托管(1&1)只提供基本的 PHP 5.4(没有外部库,如 PECL_HTTP 或 CURL 等,没有安装的库)。

我可以将 PHP 类文件添加到我的代码中。我正在尝试在此 URL 上进行 Http/Https 获取 $url ="https://www.googleapis.com/freebase/v1/search?query=chocolate&count=2";

我已经尝试过 Snoopy,并且至少有 6 个来自 PHPClasses 的不同类库都没有返回任何内容(结果为空白),我不知道为什么?但它们都返回页面结果。

任何人都可以建议一个我可以包含的 PHP 类库(而不是任何已安装的库),它可以执行简单的 Http/Https 获取和返回结果。

4

3 回答 3

2

如果你只想要这个“文件”的内容,你可以使用file_get_contents()(见第一个例子)。请参阅@OkekeEmmanuelOluchukwu 关于如何发送标头的评论。

于 2012-06-06T13:43:16.963 回答
2

完整的 http 功能(包括标头等)的最佳选择是使用带有流上下文的文件函数。

来自php.net

$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
          "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp)
于 2012-06-06T13:48:47.280 回答
0

您在寻找页面输出吗?

正如您可能已经发现的那样,include something.php?foo=bar它并不工作,因为 php 实际上会查找以 结尾的文件?for=bar,但您可以像这样设置所有 get 变量:

function getRequest($url, $data) {
    foreach ($data as $key => $value) {
        $_GET[$key] = $value;
    }
    include $url;
}

但是,获取“完整路径”上的变量(想不出正确的名称)可以工作,例如include 'http://something.com/foo.php?bar=baz'. 您可以在这里找到“变量传递”的示例http://php.net/manual/en/function.include.php并在非本地系统上获取变量。

于 2012-06-06T13:44:55.697 回答