[php抓取网页内容]php抓取google hosts的程序代码

更新时间:2019-09-28    来源:Google    手机版     字体:

【www.bbyears.com--Google】

 无聊中居然又找到个php版本的抓取google hosts的文件,试了下还可以用,ping了下ip,延迟也不是很高,网页打开测试了下速度也很快,大家有兴趣的话可以试试.
php文件:


/**
 * 免翻墙上google
 * @author 自娱自乐自逍遥
 * Date: 2015/2/6
 * Time: 11:42
*/

define("START_TAG","#google-hosts-2015");
define("END_TAG","#google-hosts-2015-end");
if(!empty($argv[1])){
 $params = array();
 parse_str($argv[1], $params);
if(isset($params["url"])){
 define("GOOGLE_HOST_URL", $params["url"]);
}
if(isset($params["del"])){
define("DELETE_GOOGLE_HOST",true);
}
}
defined("GOOGLE_HOST_URL") || define("GOOGLE_HOST_URL", "http://www.360kb.com/kb/2_150.html");

if(PHP_OS == "WINNT"){
 define("HOSTS_FILE_PATH", "C:WindowsSystem32driversetchosts");
}else if(in_array(PHP_OS, array("Linux","Darwin","FreeBSD","OpenBSD","WIN32","Windows","Unix"))){
 define("HOSTS_FILE_PATH", "/etc/hosts");
}else{
 die("Unsupported system!".PHP_EOL);
}

if(!is_writable(HOSTS_FILE_PATH)){
 die("Without permission, please use the root user to perform!".PHP_EOL);
}

$hosts = file_get_contents(HOSTS_FILE_PATH);

$startPos = strpos($hosts, START_TAG);
if(!defined("DELETE_GOOGLE_HOST")){
 $gs = get_google_hosts();
 echo GOOGLE_HOST_URL.PHP_EOL;
 echo $gs.PHP_EOL;
}else{
 $gs = "";
 echo "reset hosts".PHP_EOL;
}

if($startPos){
 $_tmp = substr($hosts, $startPos, strpos($hosts, END_TAG) - $startPos + strlen(END_TAG));
 $hosts = str_replace($_tmp,$gs,$hosts);
}else{
 $hosts.= PHP_EOL.$gs;
}

$old_file_size = filesize(HOSTS_FILE_PATH);

if(file_put_contents(HOSTS_FILE_PATH, $hosts)){
 die("success. ".PHP_EOL);
}else{
die("fail".PHP_EOL);
}

function get_google_hosts(){
 $html = file_get_contents(GOOGLE_HOST_URL);
 $html = strip_tags($html);
 $startPos = strpos($html, START_TAG);
 $html = substr($html, $startPos, strpos($html,END_TAG) - $startPos);
 $html = str_replace(" "," ",$html);
 return $html.PHP_EOL.END_TAG;
}

本文来源:http://www.bbyears.com/seo/69900.html