设置为true的CURLOPT_RETURNTRANSFER无法在托管服务器上运行

Mar*_*nis 15 php curl

我正在尝试处理结果,$data = curl_exec($ch);而不是在屏幕上打印它.为了达到我设定的选项CURLOPT_RETURNTRANSFER,以true这样的:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
Run Code Online (Sandbox Code Playgroud)

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

当我设置CURLOPT_RETURNTRANSFERfalse它的工作原理.

我究竟做错了什么?

Ant*_*los 23

如果设置CURLOPT_RETURNTRANSFERtrue或者1返回值curl_exec将是成功操作的实际结果.换句话说,它不会TRUE成功回归.虽然它会FALSE在失败时返回.

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

您应该启用CURLOPT_FOLLOWLOCATION重定向选项,但如果您的服务器处于safe_mode和/或open_basedir生效,这可能会导致卷曲问题,这将是一个问题.

  • 也许我提错了问题。我希望结果在变量中返回。所以我将 CURLOPT_RETURNTRANSFER 设置为 true,它应该这样做,但它不在托管服务器上,但在 localhost 上它工作正常。也许 php ini 中的某些设置没有设置我不知道。 (2认同)