20

我正在尝试处理结果$data = curl_exec($ch);而不是将其打印在屏幕上。为了实现这一点,我将选项设置CURLOPT_RETURNTRANSFERtrue

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

在我的本地服务器上,这按预期工作,但是当我将相同的文件在线放在我的服务器上时,它不起作用。

当我设置CURLOPT_RETURNTRANSFERfalse工作。

我究竟做错了什么?

4

3 回答 3

26

如果设置CURLOPT_RETURNTRANSFERtrueor1则返回值 fromcurl_exec将是成功操作的实际结果。换句话说,它不会TRUE成功返回。虽然它会FALSE在失败时返回。

curl-execPHP 手册页的返回值部分所述:http: //php.net/manual/function.curl-exec.php

您应该启用重定向选项,但如果您的服务器在和/或有效,CURLOPT_FOLLOWLOCATION这将是一个问题,这也可能导致 curl 问题。safe_modeopen_basedir

于 2012-09-04T20:58:02.103 回答
1

如果它在您的本地环境中运行良好,则您的远程服务器的 IP 可能被您设置为 cURL 使用的目标 URL 的服务器阻止。您需要验证您的远程服务器是否被允许访问您为CURLOPT_URL设置的 URL 。

于 2019-10-29T07:33:37.100 回答
-5

试试这一行:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

后:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
于 2017-10-09T12:31:41.080 回答