cURL geto没有响应没有错误在线服务器

时间:2016-05-05 13:35:08

标签: php curl hosting localserver

希望有人能帮助我解决这个问题。我试图使用cURL调用外部网站,但我没有得到任何错误或响应。但它在本地服务器上运行正常,但在生产服务器上不起作用。我使用file_get_contents()启动了调用,但也在线失败。我和主持人谈过,他们提到问题是在代码内。这是我的代码可以任何人帮忙!?`

function send_with_curl($url, $data) {
   $data_string;
       //url-ify the data for the POST
    foreach ($data as $key => $value) { $data_string .= $key . '=' .  $value . '&';
}
rtrim($data_string, '&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_POST, count($data));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);

//execute post
$result = curl_exec($ch);
if (!is_string($result) || !strlen($result)) {      
    $result = "Failed to connect.";
}
//close connection
curl_close($ch);
return $result;
} 

我还有另一个使用file_get_contents()的函数,无论我使用它们在本地工作但在线失败没有错误我花了4个多小时试图修复它与托管人员,直到他们最终说错误是在代码和他们不熟悉那些代码:(

function send_with_file($url, $context, $sender) {
global $database;
if (!$result = file_get_contents($url, false, $context)) {
    echo "Message sending failed, please check your internet.";
    exit ;
} else {
    //--UPDATING THE DATABASE------
    $sql_update = "SELECT * FROM users WHERE users_type='2'";
    $query_update = $database -> query($sql_update);
    while ($update = $database -> fetch_array($query_update)) {
        $update_user = $update['users_id'];
        if ($update_user == $sender) {

            if ($result === FALSE) {/* Handle error */
            }
        } else {

        }

    }
}
return $result;
}

2 个答案:

答案 0 :(得分:0)

$resultfalse进行比较,然后选中curl_error()

像...一样的东西。

$result = curl_exec($ch);
if($result === false) {
    echo "Error in cURL : " . curl_error($ch);
}

答案 1 :(得分:0)

代码没有问题,我只是跟踪了我尝试连接的网址,并意识到与托管服务器通信需要很长时间。