2012-09-23 42 views
0

我試圖讓bit.ly短的散裝從一個txt文件讀取出來一個鏈接列表輸出縮短的鏈接散裝bit.ly的創造者

問題是我不知道該怎麼辦這個和bit.ly有一個API限制,如果你建立鏈接太快。我發現如果你每秒做5個鏈接,它應該工作。

我怎樣才能一次縮短1200個鏈接?

<?php 

    $sites = array( 
    'http://api.bit.ly/shorten?version=2.0.1&login=bitlyexample&apiKey=R_8b726077f3d5c6029700c29e529395d3&format=text&longUrl=http://link2.com', 
    'http://api.bit.ly/shorten?version=2.0.1&login=bitlyexample&apiKey=R_8b726077f3d5c6029700c29e529395d3&format=text&longUrl=http://link1.com', 
    ); 

    foreach ($sites as $site) { 
     $shortened_url = file_get_contents($site); 
     if($shortened_url) 
      echo "$shortened_url <br/>"; 
    } 
    die(); 
    ?> 
+1

[「的bitly API不支持使用一個API調用縮短不止一個長的URL 。但是,使用「/ v3/lookup」,「/ v3/expand」和「/ v3/clicks」端點可以在一次API調用中處理多達15個URL。「](http://code.google.com/p/bitly-API /維基/ ApiBestPractices#Batch_Processing)。那會有很大的改進,不是嗎?確保每個請求之間有足夠的延遲,否則將被歸類爲濫用API。 –

回答

0

使用sleep()後5個環節睡5秒(或秒數的API狀態):

<?php 

$sites = array( 
'http://api.bit.ly/shorten?version=2.0.1&login=bitlyexample&apiKey=R_8b726077f3d5c6029700c29e529395d3&format=text&longUrl=http://link2.com', 
'http://api.bit.ly/shorten?version=2.0.1&login=bitlyexample&apiKey=R_8b726077f3d5c6029700c29e529395d3&format=text&longUrl=http://link1.com', 
); 
$i = 0; 
foreach ($sites as $site) { 
    $shortened_url = file_get_contents($site); 
    if($shortened_url) { 
     echo "$shortened_url <br/>"; 
    } 
    $i++; 
    if($i%5 == 0){ 
     sleep(5); 
    } 
} 
die(); 
?>