php 读取 sogourank 与 ChinaRank信息

 更新时间:2016年11月25日 16:04  点击:1771
php 读取 sogourank 与 ChinaRank信息

function sogouRank($domain)
{
 $rank = '';
 $pr = 0;
 $content = get_content('http://www.sogou.com/web?query='.$domain);
 if(preg_match("/</span>([0-9]{1,})</dd>/", $content, $matches))
 {
  $pr = intval($matches[1]);
  $width = ceil(65*$pr/100);
  $rank = '<img src="./images/sg_left.gif" width="2" height="11" /><img src="./images/sg_left_img.gif" width="'.$width.'" height="11" /><img src="./images/sg_right_img.gif" width="'.(65-$width).'" height="11" /><img src="./images/sg_right.gif" width="2" height="11" />';
 }
 $rank = '<a href="http://www.sogou.com/web?query=link%3A'.$domain.'" target="_blank" title="搜狗Rank:'.$pr.'">'.$rank.'</a> '.$pr;
 return $rank;
}

function ChinaRank($domain)
{
 $rank = '';
 $content = get_content('http://www.chinarank.org.cn/detail/Info.do?url='.$domain);
 if(preg_match("/<strong>排名</strong>(.*)</tr>/", $content, $matches))
 {
  $p = trim(str_replace('</td>', '', $matches[1]));
  $p = explode("<td>", $p);
  if(isset($p[1])) $rank.= ' 今日:'.$p[1];
  if(isset($p[2])) $rank.= ' 本周:'.$p[2];
  if(isset($p[3])) $rank.= ' 三月:'.$p[3];
 }
 $rank = '<a href="http://www.chinarank.org.cn/detail/Info.do?url='.$domain.'" target="_blank">'.$rank.'</a>';
 return $rank;
}

下面来看看在很多程序语言中会使用到的class吧,现在会举个简单的实例来实现php class,类申明,class使用方法哦。

<?php
/*
 * Explorer! 函数库
 * 编写日期:2008-06-29
 * 最后更新:2008-07-18 2:08
 *
 */
class System{//系统部分
 function usr_level($name){
  $SQL = new MySQL();
  $SQL->Query("SELECT `level` FROM `members` WHERE `username` = '$name';");
  $SQL->NextRecord();
  $TMP = $SQL->GetRecord('level');
  $SQL->Free();
  return $TMP;
 }
 function channel_level($cid){
  $SQL = new MySQL();
  $SQL->Query("SELECT `level` FROM `channels` WHERE `id` = $id;");
  $SQL->NextRecord();
  $TMP = $SQL->GetRecord('id');
  $SQL->Free();
  return $TMP;
 }
 function uid2name($uid){
  $SQL = new MySQL();
  if($SQL->Query("SELECT `username` FROM `members` WHERE `uid` = $uid;")){
   $SQL->NextRecord();
   $TMP = $SQL->GetRecord('username');
   $SQL->Free();
   return $TMP;
  }else{
   return 0;
  }
 }
 function name2uid($name){
  $SQL = new MySQL();
  if($SQL->Query("SELECT `uid` FROM `members` WHERE `username` = '$name';")){
   $SQL->NextRecord();
   $TMP = $SQL->GetRecord('uid');
   $SQL->Free();
   return $TMP;
  }else{
   return 0;
  }
 }
 function sysinfo($Name){//获取系统信息
  $SQL = new MySQL();
  $SQL->Query("SELECT * FROM `sysinfo`;");
  $SQL->NextRecord();
  $TMP = $SQL->GetRecord($Name);
  $SQL->Free();
  return $TMP;
 }
 function find_member($name){//查找该用户(注册时需要)
  $SQL = New MySQL();
  $SQL->Query("SELECT * FROM `members` WHERE `username` = '$name';");
  $RS = $SQL->RowS();
  $SQL->Free();
  if($RS)
   return 1;
  else
   return 0;
 }
 function str_safe($str){//字符串安全过滤
  $str = str_replace($str,";",";");
  $str = str_replace($str,"'","‘");
  $str = str_replace($str,"/","/");
  $str = str_replace($str,"`","`");
  $str = str_replace($str,"\","\");
  return $str;
 }
 function GetMyIP()
 {
  if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])
   $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
  elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])
   $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
  elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])
   $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
  elseif (getenv("HTTP_X_FORWARDED_FOR"))
   $ip = getenv("HTTP_X_FORWARDED_FOR");
  elseif (getenv("HTTP_CLIENT_IP"))
   $ip = getenv("HTTP_CLIENT_IP");
  elseif (getenv("REMOTE_ADDR"))
   $ip = getenv("REMOTE_ADDR");
  else
   $ip = "127.0.0.1";
  return $ip;
 }
 function Version(){
  return "1.0.9";
 }
}
class MySQL{//数据库部分
 var $DBServer = 'localhost';//服务器
 var $DBName = '';//数据库名称
 var $DBUser = '';//数据库用户
 var $DBPass = '';//数据库密码
 var $OnErrorResume = 1;//错误提示关闭
 var $LinkID = 0;//连接句柄
 var $QueryID = 0;//查询句柄
 var $ResultS = array();//查询结果集
 var $Error = '';//错误信息
 function Connect($Srv = "",$Usr = "",$Pass = "",$DB = ""){//连接数据库
  if($Srv == "") $Srv = $this->DBServer;
  if($Usr == "") $Usr = $this->DBUser;
  if($Pass == "") $Pass = $this->DBPass;
  if($DB == "") $DB = $this->DBName;
  if($this->LinkID == 0){
   $this->LinkID = @mysql_connect($Srv,$Usr,$Pass) or die("数据库连接失败,请联系管理员修复此问题。");
  }
  @mysql_select_db($DB,$this->LinkID) or die("数据库选择失败,请联系管理员修复此问题。");
  return $this->LinkID;
 }
 function Free(){//释放查询结果
  @mysql_free_result($this->QueryID);
  $this->QueryID = 0;
 }
 function RowS(){//查询到的记录总数
  if(!$this->QueryID) return 0;
  return @mysql_num_rows($this->QueryID);
 }
 function NextRecord(){//下一条记录
  if(!$this->QueryID) return 0;
  $this->ResultS = @mysql_fetch_array($this->QueryID);
 }
 function Seek($seek){
  if(!$this->QueryID) return 0;
  @mysql_data_seek($this->QueryID,$seek);
 }
 function Query($Sql){//执行查询
  if($Sql == "") return 0;
  if($this->LinkID == 0) $this->Connect();
  if($this->QueryID) $this->Free();//释放原来查询结果
  $this->QueryID = @mysql_query($Sql,$this->LinkID);
  $this->Error = mysql_error($this->LinkID);
  if(!$this->QueryID) exit("$Sql执行失败."); 
  return $this->QueryID; 
 }
 function GetRecord($Name){
  if(!$this->QueryID) return 0;
  return $this->ResultS[$Name];
 }
}
?>

php 读取 alexa信息

function Alexa($domain)
{
 $alexa = '';
 $content = get_content('http://www.alexa.com/data/details/traffic_details?url='.$domain);
 if(preg_match("/3 mos. Change([sS]*?)</table>/", $content, $matches))
 {
  $change = strpos($matches[1], 'down_arrow.gif') ? '下降' : '上升';
  $p = strip_tags($matches[1], '<td>');
  $p = trim(str_replace(array("&nbsp;", "n", "</td>"), array('', '', ''), $p));
  $p = explode("<td>", $p);
  if(isset($p[1])) $alexa.= ' 今日:'.$p[1];
  if(isset($p[2])) $alexa.= ' 本周:'.$p[2];
  if(isset($p[3])) $alexa.= ' 本月:'.$p[3];
  if(isset($p[4])) $alexa.= ' '.$change.':'.$p[4];
 }
 if(preg_match("/Review for $domain:</span> (.*)<br>/", $content, $matches))
 {
  $alexa = $alexa.' 等级:'.$matches[1];
 }
 $alexa = '<a href="http://www.alexa.com/data/details/traffic_details?url='.$domain.'" target="_blank">'.$alexa.'</a>';
 return $alexa;
}

下面来看看根据php读取远程服务文件

function get_content($url)
{
 if(!strpos($url, '://')) return 'Invalid URI';
 $content = '';
 if(ini_get('allow_url_fopen'))
 {
  $content = file_get_contents($url);
 }
 elseif(function_exists('curl_init'))
 {
  $handle = curl_init();
  curl_setopt($handle, CURLOPT_URL, $url);
  curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5);
  curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 0);
  $content = curl_exec($handle);
  curl_close($handle);
 }
 elseif(function_exists('fsockopen'))
 {
  $urlinfo = parse_url($url);
  $host = $urlinfo['host'];
  $str = explode($host, $url);
  $uri = $str[1];
  unset($urlinfo, $str);
  $content = '';
  $fp = fsockopen($host, 80, $errno, $errstr, 30);
  if(!$fp)
  {
   $content = 'Can Not Open Socket...';
  }
  else
  {
   $out = "GET $uri   HTTP/1.1rn";
   $out.= "Host: $host rn";
   $out.= "Accept: */*rn";
   $out.= "User-Agent: $_SERVER[HTTP_USER_AGENT]rn";
   $out.= "Connection: Closernrn";
   fputs($fp, $out);
   while (!feof($fp))
   {
    $content .= fgets($fp, 4069);
   }
   fclose($fp);
  }
 }
 if(empty($content)) $content = 'Can Not Open Url, Please Check You Server ... <br/>For More Information, Please Visit www.111cn.net;
 return $content;
}

我们用php来实现数据保存哦,看看吧,过滤一些不合法的字符以及各种防止重复发内容的功能

<?php
include_once("inc/connect.php");
stop_outside_post();
$email =php_sava(addslashes(isset($_POST['email'])?$_POST['email']:''));
$mobile =php_sava(addslashes(isset($_POST['mobile'])?$_POST['mobile']:''));
$name =php_sava(addslashes(isset($_POST['name'])?$_POST['name']:''));
$an =php_sava(addslashes(isset($_POST['an'])?$_POST['an']:''));
$ip = get_real_ip();
$time  =date("Y-m-d");
 if(empty($mobile) || empty($email) || empty($name) || empty($an)){
   die('submit=false');
  }else{
   $tsql = "Select * from lzlj_an where ip='$ip'";
   $r = mysql_query($tsql);
   if( mysql_num_rows($r) ){
    die('submit=false');
   }else{
    $sql ="Insert into lzlj_an(mobile,email,name,an,ip,dtime) value('$mobile','$email','$name','$an','$ip','$time')";
    mysql_query($sql) or die('submit=false');
    die('submit=true');
   }
  }

 function php_sava($str)
 {
  $farr = array(
   "/s+/",                                                                                         
   "/<(/?)(script|i?frame|style|html|body|title|link|meta|?|%)([^>]*?)>/isU",  
   "/(<[^>]*)on[a-zA-Z]+s*=([^>]*>)/isU",                                     
   
    );
    $tarr = array(
   " ",
   "<\1\2\3>",           //如果要直接清除不安全的标签,这里可以留空
   "\1\2",
    );
 
   $str = preg_replace( $farr,$tarr,$str);
    return $str;
 }
 
 function stop_outside_post(){
  $ServerName = @$_SERVER['SERVER_NAME'];
  $Sub_from = @$_SERVER["HTTP_REFERER"];
  $Sub_len = strlen($ServerName);
  $Checkfrom = substr($Sub_from,7,$Sub_len);
  if($Checkfrom!= $ServerName){
   die("警告!你正在从外部提交数据或直接访问c.php文件!请立即终止!!");    
  }
 }
 
  function get_real_ip(){
    $ip=false;
    if(!empty($_SERVER["HTTP_CLIENT_IP"])){
     $ip = $_SERVER["HTTP_CLIENT_IP"];
    }
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
     $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
     if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
     for ($i = 0; $i < count($ips); $i++) {
      if (!eregi ("^(10|172.16|192.168).", $ips[$i])) {
       $ip = $ips[$i];
       break;
      }
     }
    }
    return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
  }
?>
本站原创www.111cn.net/phper/php.html

[!--infotagslink--]

相关文章