【问题标题】:Curl doesn't get external websitesCurl 无法获取外部网站
【发布时间】:2013-08-18 20:51:30
【问题描述】:

我在本地计算机(我自己的计算机)上配置 cUrl 时遇到了一些问题。

我只能下载位于本地主机上的站点。尝试任何其他主机都会导致失败(返回空字符串)。我确定代码没问题 - 它可以在我的生产服务器上运行。

另外,curl_errno 不会返回任何错误。

我找不到问题,请帮忙。

编辑:这是代码。

<?php
$url = "http://stackoverflow.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch); // It's empty

【问题讨论】:

  • 失败:返回空字符串。约翰,代码不是我所说的问题,但如你所愿,我会将其粘贴到问题中。
  • 打印 curl_error() php.net/manual/en/function.curl-error.php 并向我们展示它的内容。 Curl 不会自动吐出错误,您必须获取它们。每当我使用 curl 并且事情不正常时,这是我做的第一件事,吐出 curl_error(),这几乎总是指向我的问题。
  • Verv,它什么也不返回——因为我指出的问题没有错误。
  • 检查你系统的防火墙是否允许Apache访问互联网!

标签: php linux apache curl


【解决方案1】:

回显结果! [经过测试且有效]

<?php
$url = "http://stackoverflow.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch); 
echo $result;//Added

【讨论】:

  • 曾经提出过,作者同意删除。我添加的代码 sn-p 不包含结果打印。
【解决方案2】:

你可能想试试这个而不是 curl

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$url = "http://stackoverflow.com";

echo file_get_contents($url);

还要确保在 php.ini 中打开了 allow_url_fopen http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

【讨论】:

  • 我需要使用 Curl,所以这不是解决方案。
【解决方案3】:

你的机器上是否安装了PHP curl,如果没有,请先安装再尝试

对于安装,您可以使用这两种方法中的任何一种

它应该可以工作

【讨论】:

  • 当他说它适用于本地主机时,这意味着它已经安装了
  • 他说它在生产上工作,而不是在他的本地主机上“我确定代码没问题 - 它在我的生产服务器上工作。”
  • 他说:我只能下载放在本地主机上的网站。这就是我说的:-D
  • 啊啊!我的不好,让我们为他找到解决方案
猜你喜欢
  • 2012-08-06
  • 2018-05-27
  • 1970-01-01
  • 2013-04-21
  • 2012-07-02
  • 1970-01-01
  • 1970-01-01
  • 2013-08-31
  • 1970-01-01
相关资源
最近更新 更多