Tôi đang chạy trang web của trình đọc nguồn cấp dữ liệu, nơi sẽ có nhiều RSS xung quanh. Tôi sẽ phải đồng bộ hóa những nguồn cấp dữ liệu đó thường xuyên nhất có thể, vì vậy tôi đã tìm thấy hai phương pháp này để thực hiện nó.CURL hoặc file_get_contents để cập nhật danh sách nguồn cấp dữ liệu?
1 phương pháp: Sử dụng CURL
$weblog_name = 'MyBlog';
$weblog_url = 'http://feeds.feedburner.com/myblog';
$ping_url = 'http://ping.feedburner.com';
$request = <<<EOT
<?xml version="1.0" encoding="iso-8859-1"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param>
<value>
<string>$weblog_name</string>
</value>
</param>
<param>
<value>
<string>$weblog_url</string>
</value>
</param>
</params>
</methodCall>
EOT;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ping_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, trim($request));
$result = curl_exec($ch);
curl_close($ch);
Phương pháp thứ hai: file_get_contents
file_get_contents("http://feedburner.google.com/fb/a/pingSubmit?bloglink=http://feeds.feedburner.com/myblog");
Câu hỏi của tôi là đó là giải pháp tốt hơn và nhanh hơn để ping ít nhất 50 thức ăn cùng một lúc?
Tôi không quen thuộc với Curl , nó có nhận được nội dung không? Ý tôi là nó hoạt động như thế nào? Ngoài ra, sẽ có 50 get_file_contents cùng một lúc rất chậm? – EnexoOnoma
cURL cũng sẽ nhận được tiêu đề cho yêu cầu http. Bạn có thể thêm tiêu đề yêu cầu, biến bài đăng và máy chủ proxy của riêng mình vào cURL. Tuy nhiên, đối với một yêu cầu nhận đơn giản, cURL là không cần thiết. Tôi tìm thấy cURL mất hơn 10 ms trên máy chủ wamp của tôi apache2.2.17 php5.3.5 cho http://www.google.com –
@mtopia nó không thực sự tạo sự khác biệt vì get_file_contents là đồng bộ, tức là dòng tiếp theo được thực thi chỉ sau khi dòng này đã được thực hiện hoàn toàn –