2015-11-30 49 views
2

我試圖從外部網站使用cURLPHP中獲取數據,但不知何故,它無法正常工作。

我已檢出CURL啓用phpinfo()。它顯示cURL已啓用cURL is enabledPHP - CURL已啓用,但無法正常工作

但是,我的代碼不起作用。

<?php 
if (! function_exists ('curl_version')) { 
    exit ("Enable cURL in PHP"); 
} 

$ch = curl_init(); 
$timeout = 0; // 100; // set to zero for no timeout 
$myHITurl = "http://www.google.com"; 
curl_setopt ($ch, CURLOPT_URL, $myHITurl); 
curl_setopt ($ch, CURLOPT_HEADER, 0); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$file_contents = curl_exec ($ch); 
if (curl_errno ($ch)) { 
    echo curl_error ($ch); 
    curl_close ($ch); 
    exit(); 
} 
curl_close ($ch); 

// dump output of api if you want during test 
echo "$file_contents"; 
?> 


它超時。
Connection Timeout 我沒有使用WAMP或XAMPP服務器。以上代碼直接在服務器上運行。 我不知道發生了什麼問題。先謝謝了。

+1

你正在使用哪個操作系統? – WisdmLabs

+2

該錯誤表明捲曲本身正在工作。這看起來像是運行腳本的主機上的防火牆問題。 –

+0

@WisdmLabs服務器操作系統是'linux' –

回答

5

你的代碼是完美的,我已經在我自己的服務器(德克薩斯州的數據中心)上測試過它,它工作正常。

我的猜測是你的服務器IP被禁止。嘗試獲取不同的網址,看看它是否適合你。如果這樣做,那麼你被禁止,如果它沒有,那麼它可能是你的服務器中的防火牆配置問題。

+0

讓我簽出'防火牆'問題。但是,我不明白「IP被禁止」。你能簡單地告訴我嗎?我如何檢查我的IP是否被禁止。 –

+1

我無法確定它是否被禁止,因爲它也可能是防火牆配置問題。您可以嘗試的另一件事是在終端中運行telnet(www.google.com 80'),看看您是否可以連接。嘗試在代碼中獲取其他網址,例如http://www.example.com,看看它是否有效。祝你好運! – Aviram

+2

我的'80'和'443'端口被服務器端阻塞。謝謝你的答案@Aviram –