cURL无法正常工作!

时间:2010-11-18 20:38:23

标签: php curl

我对cURL有疑问。我正在使用cURL这个函数:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

只有这导致错误:“消息:curl_setopt()[function.curl-setopt]:在safe_mode或open_basedir设置为”

时,无法激活CURLOPT_FOLLOWLOCATION

所以我要求我的托管服务提供商解决这个问题,他们做到了。但是,这真的很愚蠢,他们在我的bin目录中放了一个“curl”文件。我不知道如何在我的PHP脚本中包含这个:S。

之前从未这样做过,但任何人都可以帮助我。我真的被卡住了。我希望我发布了足够的信息!

Tnx in advanced!


所有重要回复的Tnx。但是我如何在这段代码中使用“exec()”?

    // create a new cURL resource
    $ch = curl_init();

    // set URL and other appropriate options
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_TRANSFERTEXT, TRUE);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_URL, $articleUrl);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 5);

    // grab URL and pass it to $grabArticle
    $grabArticle = curl_exec($ch);

编辑2: 好的,我几乎让它工作了:)。当我在putty中运行它时工作正常,但在我的php脚本中没有任何反应:(

我跑了这个:

$grabArticle = exec('/home/twittern/bin/curl -L -m 30 -w url_effective --max-redirs 5 http://fok.nl/415758');
echo $grabArticle;

我做错了什么?

3 个答案:

答案 0 :(得分:3)

它们要求您使用外部命令行版本,而不是在PHP中使用内置的cURL函数。

使用PHP exec()函数调用程序,命令行选项可以在curl man page上找到。

鉴于您可能需要完整响应,您可能需要将passthru()与输出缓冲一起使用,或将输出保存到(临时)文件。

答案 1 :(得分:1)

PHP curl不依赖于可用的卷曲箱。 (PHP自4.0.2起支持curl)

您的托管服务提供商只需要确保您的PHP ini已关闭safe_mode

但是考虑到处理这个(给你一个curl二进制文件)的方式,看起来你应该使用exec()来调用它。

就个人而言,我建议你找一个更好的主人。

答案 2 :(得分:1)

您的提供商很糟糕。回调它们并让它们重新编译php以包含curl支持。

否则你会被迫直接调用curl。

$result = exec("/bin/curl http://www.foobar.com");