我的地方是一個域可用性檢查,它連接到一個API並從$ tmp輸出「Available:and Unavailable:」。下面的代碼將只檢查可用性ONCE。幫助修復php/api/curl代碼請
我想檢查域的多次的可用性,而不必運行重啓捲曲連接每次(因爲它浪費時間 - 300毫秒到每個查詢1S)(可能在一個循環?)。
我只是不知道如何連接到cURL一次並運行循環(通過API進行檢查)。幫助調整代碼將非常感謝!最小化輸出「可用/不可用」和循環檢查所花費的時間是關鍵。
謝謝。
當前代碼
<?php
function GetCurlPage ($pageSpec)
{
$ch = curl_init($pageSpec);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$tmp = curl_exec ($ch);
curl_close ($ch);
$tmp = preg_replace('/(?s)<meta http-equiv="Expires"[^>]*>/i', '', $tmp);
$tmp = explode('<br>', $tmp);
echo $tmp[0];
echo "<br>";
echo $tmp[1];
echo "<br>";
return $tmp;
}
$returnUrl = "http://www.mysite.com.au/check.php";
$url = "https://www.apisite.com.au/availability/check.php?domain=testdomain&suffixes=.com.au";
$output = GetCurlPage("$url");
?>
@Marc乙
function getCurlPage($pageSpec) {
if (is_null($ch)) {
$ch = curl_init($pageSpec);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
} else {
curl_setopt($ch, CURLOPT_URL, $pageSpec);
}
while ($i < 5) {
$tmp = curl_exec ($ch);
//curl_close ($ch);
$tmp = preg_replace('/(?s)<meta http-equiv="Expires"[^>]*>/i', '', $tmp);
$tmp = explode('<br>', $tmp);
echo $tmp[0];
echo "<br>";
echo $tmp[1];
echo "<br>";
echo udate('H:i:s:u');
echo "<br><br>";
$i++;
}
return $tmp;
}
如果你暗示持續的http連接,你必須堅持你已有的東西。 'cURL'不是爲了這樣工作而設計的。 – 2010-12-19 15:44:47
@goreSplatter - 它可能會循環$ tmp = curl_exec($ ch);使$ tmp成爲一個數組,例如:$ tmp(i)並在每個循環中遞增?在每個循環,輸出..會執行可用性檢查和輸出,或者是不可能跳過執行卷曲每個單一的可用性檢查? – iCeR 2010-12-19 15:48:06
有沒有另一種使用http-post來實現我想要的方式? – iCeR 2010-12-19 15:49:48