2012-12-18 30 views
5

Tôi đang sử dụng thư viện API youtube Zend API.là có cách nào tốt hơn để sử dụng Youtube PHP API

Trong API này trước, tôi gửi yêu cầu để nhận mã tạm thời/xác nhận.

Sau đó, yêu cầu nhận mã thông báo truy cập.

Sau này tôi muốn lấy thông tin người dùng sau đó yêu cầu khác làm để

https://gdata.youtube.com/feeds/api/users/default 

cho người dùng hiện Nó trả về url với userId

Sau đó, cuối cùng tôi nhận được thông tin người dùng từ đó url đó là ở dạng xml.

Tôi chán ngấy bởi rất nhiều yêu cầu này phải mất nhiều thời gian.

Có cách nào khác để có được những điều này bằng cách giảm số lượng yêu cầu curl/ajax.

+0

Vấn đề bạn cần phải truy vấn nhiều người dùng và mất quá nhiều thời gian? – Ranty

+0

vâng tôi đã đề cập đến nó trong câu hỏi –

Trả lời

1

Bạn có thể sử dụng curl_multi_* để thực hiện yêu cầu cho người dùng khác nhau song song. Nó sẽ không tăng tốc quá trình cho mỗi người dùng duy nhất, nhưng vì bạn có thể thực hiện 10-30 yêu cầu trở lên song song, nó sẽ đẩy nhanh toàn bộ thỏa thuận.

Biến chứng duy nhất là bạn sẽ cần tệp cookie riêng biệt cho mọi yêu cầu. Dưới đây là mã mẫu để bắt đầu:

$chs = array(); 
$cmh = curl_multi_init(); 
for ($t = 0; $t < $tc; $t++) 
{ 
    $chs[$t] = curl_init(); 
    // set $chs[$t] options 
    curl_multi_add_handle($cmh, $chs[$t]); 
} 

$running=null; 
do { 
    curl_multi_exec($cmh, $running); 
} while ($running > 0); 

for ($t = 0; $t < $tc; $t++) 
{ 
    $contents[$t] = curl_multi_getcontent($chs[$t]); 
    // work with $contencts[$t] 
    curl_multi_remove_handle($cmh, $chs[$t]); 
    curl_close($chs[$t]); 
} 
curl_multi_close($cmh); 
Các vấn đề liên quan