仿dedecms顶评[顶,踩]功能源码下载

 更新时间:2016年11月25日 16:02  点击:2325
仿dedecms顶评[顶,踩]功能源码下载

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Digg Demo</title>
<style>
.buttons{margin:20px 12px 12px;text-align:center;}
.buttons img{margin:0 5px 0 0;}
.mark{padding:15px 0 0 40px;overflow:hidden;zoom:1;}
#mark0, #mark1{width:189px;height:48px;background:url('./img/mark.gif') no-repeat -189px 0;border:0px none;cursor:pointer;position:relative;margin:0;padding:0;overflow:hidden;float:left}
#mark1{background-position:-378px 0;margin-left:10px;}
.bar{position:absolute;left:9px;top:32px;width:55px;height:5px;border:1px solid #40a300;background-color:#fff;overflow:hidden;text-align:left;}
#mark1 .bar{border-color:#555;}
.bar div{background:url('./img/sprites.gif') repeat-x 0 -265px;height:5px;overflow:hidden}
#mark1 .bar div{background-position:0 -270px;}
#barnum1, #barnum2{position:absolute;top:30px;left:70px;font:400 10px/12px arial;color:#333;}
</style>
<script language="javascript" src="./digg.js"></script>

<script type="text/javascript">
var url ='http://127.0.0.1/digg/';

</script>
</head>
<body>
  <div class="mark">
   <div id="mark0" onmouseover="this.style.backgroundPosition='0 0'" onmouseout="this.style.backgroundPosition='-189px 0'" onfocus="this.blur()" onClick="sEval(1190,1)">
    <div class="bar"><div id="eimg1" style="width:50px"></div></div>
    <span id="barnum1"><span id="sp1">92.7%</span> (<span id="s1">18199</span>)</span>
   </div>
   <div id="mark1" onmouseover="this.style.backgroundPosition='-567px 0'" onmouseout="this.style.backgroundPosition='-378px 0'" onfocus="this.blur()" onclick="sEval(1190,2)">
    <div class="bar"><div id="eimg2" style="width:4px"></div></div>
    <span id="barnum2"><span id="sp2">7.3%</span> (<span id="s2">1431</span>)</span>
   </div>
  </div>

</body>
</html>

js代码

function $Obj(o){
 return document.getElementById(o);
}

var etag=false;
function sEval(softid,et){
 if(etag==true)
 {
  alert('您已经投过票了,感谢您的参与!');
  return;
 }
 var file=url +'digg.php?et='+et+'&id='+softid;
 var html_doc=document.getElementsByTagName('head')[0];
    var js=document.createElement('script');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', file);
 js.onreadystatechange=function(){
        if(js.readyState=='loaded'||js.readyState=='complete'){
            sEvalRes();
        }
    }
    js.onload=function(){
        sEvalRes();
    }
 html_doc.appendChild(js);
 etag=true;
}

function sEvalRes(){
 if(re[2]=='success'){
  var s=$Obj('s'+re[1]).innerHTML;
  $Obj('s'+re[1]).innerHTML=parseInt(s)+1;
  sUpdate();
  alert(re[3]);
 }
 else if(re[2]=='fail'){
  alert(re[3]);
  
 }
 else{
  alert('未知错误');
 }
}

function sUpdate(){
 var sUp=parseInt($Obj('s1').innerHTML);
 var sDown=parseInt($Obj("s2").innerHTML);
 var sTotal=sUp+sDown;
 var spUp=(sUp/sTotal)*100;
 spUp=Math.round(spUp*10)/10;
 var spDown=100-spUp;
 spDown=Math.round(spDown*10)/10;
 $Obj('sp1').innerHTML=spUp+'%';
 $Obj('sp2').innerHTML=spDown+'%';
 $Obj('eimg1').style.width = parseInt((sUp/sTotal)*55)+'px';
 $Obj('eimg2').style.width = parseInt((sDown/sTotal)*55)+'px';
}

php代码

<?php
$id =intval($id);
$et =intval($et);
if($_COOKIE['digg'.$id]=='' || empty($_COOKIE['digg'.$id]) ){
 setcookie("digg".$id, $id, time()+3600);  /* expire in 1 hour */
 //读写数据库操作部分省略
 echo "var re=new Array();re[0]=".$id.";re[1]=".$et.";re[2]="success";re[3]="投票成功!";";
}else{
 echo "var re=new Array();re[0]=".$id.";re[1]=".$et.";re[2]="fail";re[3]="嬲你的, php 根据IP显示地区代码


<?php
define('IPDATA_MINI', PHPCMS_ROOT.'include/ipdata/mini.Dat');
define('IPDATA_FULL', PHPCMS_ROOT.'include/ipdata/QQWry.Dat');

class ip_area
{
 var $fp = NULL;
 var $func;
 var $offset;
 var $index;

 function ip_area()
 {
  if(@file_exists(IPDATA_MINI))
  {
   $this->func = 'data_mini';
   $this->fp = @fopen(IPDATA_MINI, 'rb');
   $this->offset = unpack('Nlen', fread($this->fp, 4));
   $this->index  = fread($this->fp, $this->offset['len'] - 4);
  }
  elseif(@file_exists(IPDATA_FULL))
  {
   $this->func = 'data_full';
   $this->fp = @fopen(IPDATA_FULL, 'rb');
  }
 }

 function get($ip)
 {
  $return = '';
  if(preg_match("/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/", $ip))
  {
   $iparray = explode('.', $ip);
   if($iparray[0] == 10 || $iparray[0] == 127 || ($iparray[0] == 192 && $iparray[1] == 168) || ($iparray[0] == 172 && ($iparray[1] >= 16 && $iparray[1] <= 31)))
   {
    $return = 'LAN';
   }
   elseif($iparray[0] > 255 || $iparray[1] > 255 || $iparray[2] > 255 || $iparray[3] > 255)
   {
    $return = 'Invalid IP Address';
   }
   else
   {
    $return = $this->func ? $this->{$this->func}($ip) : '';
    if(strpos($return, ' ') !== false) $return = substr($return, 0, strpos($return,' '));
   }
   if(strtolower(CHARSET) == 'utf-8') $return = iconv('gbk', 'utf-8', $return);
  }
  return $return;
 }

 function data_mini($ip)
 {
  $ipdot = explode('.', $ip);
  $ipdot[0] = (int)$ipdot[0];
  $ipdot[1] = (int)$ipdot[1];
  $ip    = pack('N', ip2long($ip));
  $length = $this->offset['len'] - 1028;
  $start  = unpack('Vlen', $this->index[$ipdot[0] * 4] . $this->index[$ipdot[0] * 4 + 1] . $this->index[$ipdot[0] * 4 + 2] . $this->index[$ipdot[0] * 4 + 3]);
  for($start = $start['len'] * 8 + 1024; $start < $length; $start += 8)
  {
   if($this->index{$start} . $this->index{$start + 1} . $this->index{$start + 2} . $this->index{$start + 3} >= $ip)
   {
    $this->index_offset = unpack('Vlen', $this->index{$start + 4} . $this->index{$start + 5} . $this->index{$start + 6} . "x0");
    $this->index_length = unpack('Clen', $this->index{$start + 7});
    break;
   }
  }
  fseek($this->fp, $this->offset['len'] + $this->index_offset['len'] - 1024);
  if($this->index_length['len'])
  {
   return str_replace('- ', '', fread($this->fp, $this->index_length['len']));
  }
  else
  {
   return 'Unknown';
  }
 }

 function data_full($ip)
 {
  rewind($this->fp);
  $ip = explode('.', $ip);
  $ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3];
  if(!($DataBegin = fread($this->fp, 4)) || !($DataEnd = fread($this->fp, 4)) ) return;
  @$ipbegin = implode('', unpack('L', $DataBegin));
  if($ipbegin < 0) $ipbegin += pow(2, 32);
  @$ipend = implode('', unpack('L', $DataEnd));
  if($ipend < 0) $ipend += pow(2, 32);
  $ipAllNum = ($ipend - $ipbegin) / 7 + 1;
  $BeginNum = $ip2num = $ip1num = 0;
  $ipAddr1 = $ipAddr2 = '';
  $EndNum = $ipAllNum;
  while($ip1num > $ipNum || $ip2num < $ipNum)
  {
   $Middle= intval(($EndNum + $BeginNum) / 2);
   fseek($this->fp, $ipbegin + 7 * $Middle);
   $ipData1 = fread($this->fp, 4);
   if(strlen($ipData1) < 4)
   {
    fclose($this->fp);
    return 'System Error';
   }
   $ip1num = implode('', unpack('L', $ipData1));
   if($ip1num < 0) $ip1num += pow(2, 32);
   if($ip1num > $ipNum)
   {
    $EndNum = $Middle;
    continue;
   }
   $DataSeek = fread($this->fp, 3);
   if(strlen($DataSeek) < 3)
   {
    fclose($this->fp);
    return 'System Error';
   }
   $DataSeek = implode('', unpack('L', $DataSeek.chr(0)));
   fseek($this->fp, $DataSeek);
   $ipData2 = fread($this->fp, 4);
   if(strlen($ipData2) < 4)
   {
    fclose($this->fp);
    return 'System Error';
   }
   $ip2num = implode('', unpack('L', $ipData2));
   if($ip2num < 0) $ip2num += pow(2, 32);
   if($ip2num < $ipNum)
   {
    if($Middle == $BeginNum)
    {
     fclose($this->fp);
     return 'Unknown';
    }
    $BeginNum = $Middle;
   }
  }
  $ipFlag = fread($this->fp, 1);
  if($ipFlag == chr(1))
  {
   $ipSeek = fread($this->fp, 3);
   if(strlen($ipSeek) < 3)
   {
    fclose($this->fp);
    return 'System Error';
   }
   $ipSeek = implode('', unpack('L', $ipSeek.chr(0)));
   fseek($this->fp, $ipSeek);
   $ipFlag = fread($this->fp, 1);
  }
  if($ipFlag == chr(2))
  {
   $AddrSeek = fread($this->fp, 3);
   if(strlen($AddrSeek) < 3)
   {
    fclose($this->fp);
    return 'System Error';
   }
   $ipFlag = fread($this->fp, 1);
   if($ipFlag == chr(2)) {
    $AddrSeek2 = fread($this->fp, 3);
    if(strlen($AddrSeek2) < 3)
    {
     fclose($this->fp);
     return 'System Error';
    }
    $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));
    fseek($this->fp, $AddrSeek2);
   }
   else
   {
    fseek($this->fp, -1, SEEK_CUR);
   }
   while(($char = fread($this->fp, 1)) != chr(0))
   $ipAddr2 .= $char;
   $AddrSeek = implode('', unpack('L', $AddrSeek.chr(0)));
   fseek($this->fp, $AddrSeek);
   while(($char = fread($this->fp, 1)) != chr(0))
   $ipAddr1 .= $char;
  }
  else
  {
   fseek($this->fp, -1, SEEK_CUR);
   while(($char = fread($this->fp, 1)) != chr(0))
   $ipAddr1 .= $char;
   $ipFlag = fread($this->fp, 1);
   if($ipFlag == chr(2))
   {
    $AddrSeek2 = fread($this->fp, 3);
    if(strlen($AddrSeek2) < 3)
    {
     fclose($this->fp);
     return 'System Error';
    }
    $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));
    fseek($this->fp, $AddrSeek2);
   }
   else
   {
    fseek($this->fp, -1, SEEK_CUR);
   }
   while(($char = fread($this->fp, 1)) != chr(0))
   $ipAddr2 .= $char;
  }
  if(preg_match('/http/i', $ipAddr2)) $ipAddr2 = '';
  $ipaddr = "$ipAddr1 $ipAddr2";
  $ipaddr = preg_replace('/CZ88.NET/is', '', $ipaddr);
  $ipaddr = preg_replace('/^s*/is', '', $ipaddr);
  $ipaddr = preg_replace('/s*$/is', '', $ipaddr);
  if(preg_match('/http/i', $ipaddr) || $ipaddr == '') $ipaddr = 'Unknown';
  return ''.$ipaddr;
 }

 function close()
 {
  @fclose($this->fp);
 }
}
?>

php strrpos explode is_array 函数使用教程

    

本文章来讲一个简单的关于strrpos explode is_array等函数的使用方法哦,

关于strrpos判断
字符中是否存在要查的字符strrpos($j_rs->selectedjob,'-')


关于explode判断
把字符以什么形式开成数组array = explode('-',$j_rs->selectedjob);

is_array
判断当前参数是否是数组is_array( $array )

$ja ='0';
$jb ='0';
   
if(strrpos($j_rs->selectedjob,'-') )//用strrpos
 {
  $array = explode('-',$j_rs->selectedjob);
  if( is_array( $array ) )
  {
   $ja =getJobType( $array[0] );
   $jb =getJobType( $array[1] );
  }
   else
  {
   $ja =getJobType( $j_rs->selectedjob );
  }
   }
   else
   {
    $ja =getJobType( $j_rs->selectedjob );
   }

i
   

php in_array,trim,isset,unset,is_numeric函数用法。

下面我们一一看讲一下这些函数的使用教程吧。

in_array($array)

这个函数是判断当前值是否为数组哦

EX:

$array= array(1,2);
if( in_array( $array ) )
{
 die('in_array判断它是数组');
}
echo '不是数组';

result:

in_array判断它是数组


trim($value)


trim函数是去除参数的空值包括null," "

isset($value)

isset是判断变量是否存在

unset($value)

销毁变量

下面我们来看看isset,unset实例吧。

$a = 'v';

isset( $a ) ? $a:NULL;

unset( $a );

isset( $a ) ? $a:NULL;

结果是:

v

Null

is_numeric($num)

$num =3;

if( is_numeric($num) )
{
 echo $num;
}
else
{
 echo '不是数值';
}

本站原创转载注明来自www.111cn.net/phper/php.html

php 去除数组空值


我们要使用教程中经常会看到关于如何去除php数据中的空值了,下面我们提供二种去除空值的方法
$t=",,,,中国WEB第一站,www.111cn.net"
$ar= explode(',',$t);

function filter($var)
{
 if($var == '')
 {
  return false;
 }

return true;
}

array_filter($ar, "filter");

/*
foreach( $ar as $temp=>$k)
{
 if( $k )
 {   
         unset( $ar[$k] );   
 }   

}
print_r( $ar );
*/

上面函数得出的结果为
中国WEB第一站,www.111cn.net

本站原创转载注明来自www.111cn.net/phper/php.html

[!--infotagslink--]

相关文章

  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • jQuery 2.0.3 源码分析之core(一)整体架构

    拜读一个开源框架,最想学到的就是设计的思想和实现的技巧。废话不多说,jquery这么多年了分析都写烂了,老早以前就拜读过,不过这几年都是做移动端,一直御用zepto, 最近抽出点时间把jquery又给扫一遍我也不会照本宣科的翻译...2014-05-31
  • php实现文件下载实例分享

    举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
  • Visual Studio 2015下载和安装图文教程

    这篇文章主要为大家详细介绍了Visual Studio 2015下载和安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • 基于JavaScript代码实现微信扫一扫下载APP

    有很多人在做微信的扫一扫下载。但是在微信更新之后微信将该功能给禁止掉了,也不能说是全面禁止吧,因为腾讯、微信是一家嘛,通过应用宝审核的应用好像还是可以通过扫一扫直接下载的,下面通过本篇文章给大家介绍微信扫一扫下载app的代码片段,感兴趣的朋友一起看看吧...2016-01-02
  • vue3源码剖析之简单实现方法

    源码的重要性相信不用再多说什么了吧,特别是用Vue 框架的,一般在面试的时候面试官多多少少都会考察源码层面的内容,下面这篇文章主要给大家介绍了关于vue3源码剖析之简单实现的相关资料,需要的朋友可以参考下...2021-09-07
  • Javascript前端下载后台传来的文件流代码实例

    这篇文章主要介绍了Javascript前端下载后台传来的文件流代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-19
  • Underscore源码分析

    Underscore 是一个 JavaScript 工具库,它提供了一整套函数式编程的实用功能,但是没有扩展任何 JavaScript 内置对象。这篇文章主要介绍了underscore源码分析相关知识,感兴趣的朋友一起学习吧...2016-01-02
  • 在PHP中使用X-SendFile头让文件下载更快

    一般来说, 我们可以通过直接让URL指向一个位于Document Root下面的文件, 来引导用户下载文件.但是, 这样做, 就没办法做一些统计, 权限检查, 等等的工作. 于是, 很多时候, 我们采用让PHP来做转发, 为用户提供文件下载...2014-06-07
  • C#开发教程之FTP上传下载功能详解

    这篇文章主要为大家详细介绍了C#开发教程之FTP上传下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • python3.8下载及安装步骤详解

    这篇文章主要介绍了python3.8下载及安装步骤详解,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-04-27
  • 【详解】Android远程http下载和动态注册第三方so lib库教程

    本教程我们为您介绍Android的第三方库so lib库如何远程http下载和动态注册,远程下载so库主要解决的是下载so存放的位置及读写权限,大家可以参考一下。 一、背景...2016-09-20
  • springboot+vue实现文件上传下载

    这篇文章主要为大家详细介绍了springboot+vue实现文件上传下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-11-18
  • Android Studio如何查看源码并调试的方法步骤

    这篇文章主要介绍了Android Studio如何查看源码并调试的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-15
  • PHP 下载文件时自动添加bom头的方法

    bom头其实是一个非常可恶的东西,有时因为bom头导致页面乱码之类的问题,但有的时间加bom头是必须的,下面我们来看一个PHP 下载文件时自动添加bom头的方法,希望文章对大家有...2016-11-25
  • Spring Boot使用GridFS实现文件的上传和下载方式

    这篇文章主要介绍了Spring Boot使用GridFS实现文件的上传和下载方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-23
  • php 超大文件下载程序[http 缓存协商,Etag标记,断点续传]

    <?php教程 002 $file_path = './download/download_cn.rar'; 003 004 //使用方法 005 downFile($file_path); 006 007 // 服务器文件路径,下载文件名字(默认...2016-11-25
  • JavaScript实现图片合成下载的示例

    这篇文章主要介绍了JavaScript实现图片合成下载的示例,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下...2020-11-19
  • 帝国CMS下载不采用弹出窗口式说明

    6、下载不采用弹出窗口式说明 ...2016-05-19