2010-12-17 16 views
-1

我正在運行一個腳本,它將檢查域名的可用性(10次)並輸出域(如果可用)和時間戳(以毫秒爲單位)。如何重新編碼我的PHP腳本儘可能快地運行?

你能找到任何會使腳本變慢的事情嗎? 如果你可以請調整和重新發布或建議什麼可以做得更好,這將非常感謝!謝謝。

<?php 

    date_default_timezone_set('Australia/Brisbane'); 
    $loops = 0; 

    function udate($format, $utimestamp = null) { 
     if (is_null($utimestamp)) 
     $utimestamp = microtime(true); 

     $timestamp = floor($utimestamp); 
     $milliseconds = round(($utimestamp - $timestamp) * 1000000); 

     return date(preg_replace('`(?<!\\\\)u`', $milliseconds, $format), $timestamp); 
    } 

    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); 
     foreach ($tmp AS $line) { 
     //echo '<pre>'; 
     //print_r($line); 
     //echo '</pre>'; 
     } 
     // Do something with each line. 
     echo $tmp[0]; 
     echo "<br>"; 
     echo $tmp[1]; 
     //echo $tmp[2]; 
     echo "<br>"; 
     echo udate('H:i:s:u'); 
     echo "<br><br>"; 

     return $tmp; 

    } 

    while ($loops <= 10)  
    { 
$suffixes=urlencode("com.au"); 
$domain = "sampledomain"; 
$fuzzysearch = "0"; 
$returnUrl="http://mydomain.com.au/test.php"; 
$url = "https://apidomain.com.au/check.php?domain=" . 
$domain . "&suffixes=" . $suffixes . "&fuzzysearch=" . $fuzzysearch; 
$output = GetCurlPage("$url"); 

    ++$loops; 
    }   
?> 

回答

5

緩慢,因爲你需要使10捲曲到外部網站

兩個建議

  • 更新您的test.php/check.php允許多個域名查詢在一個捲曲的呼叫(而不是檢查一個接一個,通過一個數組)
  • 使用curl_multi_exec到允許平行卷曲10個不同的網址同時

我寧願建議1

+0

@ajreal它似乎是最好的選擇!與其他用戶建議應該做的伎倆:)謝謝。現在,我怎樣才能建立一個數組與curl調用多個域?對不起,第一次使用curl – iCeR 2010-12-17 18:18:53

+0

@iCeR - 例如'https://apidomain.com.au/check.php?domain1 = abc.com&domain2 = def.com&domain3 = ghi ... **或OR **'https ://apidomain.com.au/check.php?domain [] = abc.com&domain [] = def.com&domain [] = ghi ...' – ajreal 2010-12-17 18:24:58

+0

沒有運氣將它編碼:(對不起。可能有助於編輯我的代碼根據上面? – iCeR 2010-12-17 18:51:31

1
  • 不要把從$suffixes=urlencode("com.au");代碼,直到$domain . "&suffixes=" . $suffixes . "&fuzzysearch=" . $fuzzysearch;在循環
  • 取出空foreach ($tmp AS $line) {
  • 不要做uDate公司正則表達式的東西,不使用參數有,而不是讓更新做它使用字符串連接
0

變化if (is_null($utimestamp)) b y if ($utimestamp === null),以防止PHP不得不調用函數is_null()

相關問題