php如何实现检测pc,移动设备当前网络环境所在城市

最近用tpm做一个天气预报的测试用例(http://www.chenjie.info/1269),考虑给增加一个自动根据手机或者pc设备获取所在城市的功能,然后依托这个来进一步用我之前的测试用例来获取此城市的当天的天气信息,网上找了一些代码都不是很好用,索性自己用curl写一个。数据源是用的站长之家的,相信做过网站的朋友都不会太陌生,没啥好说的了,直接上代码,已经封装成一个函数,可以直接调用。

function detect_city() {  

        $default = '未能定位到您的城市';  

        $curlopt_useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)';                  
        $url = 'http://ip.chinaz.com';        
        $ch = curl_init();                  
        $curl_opt = array(             
        	CURLOPT_FOLLOWLOCATION  => 1,  
            CURLOPT_HEADER      => 0, 
            CURLOPT_RETURNTRANSFER  => 1,  
            CURLOPT_USERAGENT   => $curlopt_useragent,  
            CURLOPT_URL       => $url,  
            CURLOPT_TIMEOUT         => 1,  
            CURLOPT_REFERER         => 'http://' . $_SERVER['HTTP_HOST'],
        );  

        curl_setopt_array($ch, $curl_opt);  

        $content = curl_exec($ch);  

        if (!is_null($curl_info)) {  
            $curl_info = curl_getinfo($ch);  
        }  

        curl_close($ch);  
  		//return $content;
        if ( preg_match('{来自:(.*)市}i', $content, $regs) ){ $city = $regs[1]; } 
        if( $city!=''){ $location = $city; return strip_tags($location); } else{ return $default; }
    }

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据