मैं एक PHP स्क्रिप्ट बनाने की कोशिश कर रहा हूं जो जितनी जल्दी हो सके वेबसाइट की HTTP स्थिति की जांच करेगा।get_headers से कुछ तेज()
मैं वर्तमान में get_headers() का उपयोग कर रहा हूं और इसे mysql डेटाबेस से 200 यादृच्छिक यूआरएल के लूप में चला रहा हूं।
सभी 200 की जांच करने के लिए - इसमें औसत 2 मीटर 48s लगता है।
क्या ऐसा कुछ भी है जो मैं इसे (अधिक) तेज़ बनाने के लिए कर सकता हूं?
(मुझे fsockopen के बारे में पता है - यह 20s में 200 साइटों पर पोर्ट 80 की जांच कर सकता है - लेकिन यह http स्थिति कोड का अनुरोध करने जैसा नहीं है क्योंकि सर्वर पोर्ट पर प्रतिक्रिया दे सकता है - लेकिन शायद वेबसाइटों को सही ढंग से लोड नहीं किया जा सकता है)
यहाँ कोड है ..
<?php
function get_httpcode($url) {
$headers = get_headers($url, 0);
// Return http status code
return substr($headers[0], 9, 3);
}
###
## Grab task and execute it
###
// Loop through task
while($data = mysql_fetch_assoc($sql)):
$result = get_httpcode('http://'.$data['url']);
echo $data['url'].' = '.$result.'<br/>';
endwhile;
?>
हाय, मैंने आपके द्वारा पोस्ट किए गए कोड की तरह curl का उपयोग करने का भी प्रयास किया है। लेकिन यह वही है, get_headers() से थोड़ा लंबा है; – Clarkey
बहु अनुरोध करने का प्रयास करें क्योंकि मैं उपरोक्त लिंक देता हूं। उदाहरण के लिए प्रति बार 10 अनुरोध – safarov
+1 अच्छा है! मुझे नहीं पता था कि कर्ल एक्सटेंशन समानांतर में अनुरोध संसाधित कर सकता है। – nnichols