超级简单快速的域名查询接口(已封装成PHP函数) CURL批处理
分享一个超级简单快速的域名查询接口函数,基于PHP Curl批处理实现。使用方法也很简单,第一个参数传入要查询的域名,第二个参数以数组的形式传入域名后缀,也就是顶级域名。请看函数代码:
/**
* 判断域名是否已经注册 (会返回 coderbolg.com/coderbolg.net的注册情况)
* @param $domain
* @param $ext
* @return ARRAY
* @author zhuwc
* @version (2011-09-09)
*
*/
function isRegister($domain, $ext = array('com','net') ) {
if ( empty($domain) ) {
return false;
}
$post_data = $curl = $text = $return = array();
foreach ($ext as $v) {
$post_data[] = array('domain'=> $domain . '.'.$v );
}
$urls = array_fill(0, count($post_data) ,
'http://pandavip.www.net.cn/check/check_ac1.cgi' );
$handle = curl_multi_init();
foreach($urls as $k => $v) {
$curl[$k] = curl_init($v);
curl_setopt($curl[$k], CURLOPT_HTTPHEADER, array(
"User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2",
"Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language: zh-cn,zh;q=0.5"
));
curl_setopt($curl[$k], CURLOPT_REFERER,'http://www.net.cn/');
curl_setopt($curl[$k], CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl[$k], CURLOPT_POST, 1);
curl_setopt($curl[$k], CURLOPT_POSTFIELDS, $post_data[$k]);
curl_multi_add_handle ($handle, $curl[$k]);
}$active = null;
do {
$mrc = curl_multi_exec($handle, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($handle) != -1) {
do {
$mrc = curl_multi_exec($handle, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}foreach ($curl as $k => $v) {
if (curl_error($curl[$k]) == "") {
$text[$k] = (string) curl_multi_getcontent($curl[$k]);
}
curl_multi_remove_handle($handle, $curl[$k]);
curl_close($curl[$k]);
}
curl_multi_close($handle);
foreach ($text as $key => $value) {if( false === $pos = strrpos($value,'|') ){
$return[$key] = $ext[$key] . '|False';
}else{
if ( false === strrpos( substr( $value, $pos ), 'not' ) ){
$return[$key] = $ext[$key] . '|Unregistered';
}else{
$return[$key] = $ext[$key] . '|Registered';
}
}
}
return $return;
}
本文链接地址: http://www.coderbolg.com/content/159.html


评论列表