使用PHP的内部函数iconv_strlen()与iconv_substr()即可解决,需要知道的是字符串的编码格式。

iconv()用于转换字符串的编码格式,如:iconv('gb2312','utf-8',$str)  将gb2312格式的字符串转换为utf-8格式

如果字符串的格式为utf-8,那么用iconv_strlen($str,'utf')则可准确得到该字符个数,而不是字节数。

同理,使用iconv_substr($str,$offset,$length,'utf-8')可准确截取需要的字符。


<?php
//当前文本编辑器编码格式为中文编码格式如“gbk”
$str="php爱好者";
echo iconv_strlen($str,'gbk'); //6
echo iconv_substr($str,1,3,'gbk'); //hp爱



Tags:
PHP中怎样获取用户的IP地址?

function getIP() {
    $realip='';
    if (isset($_SERVER)){
        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
            $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
        } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
            $realip = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $realip = $_SERVER["REMOTE_ADDR"];
        }
    } else {
        if (getenv("HTTP_X_FORWARDED_FOR")){
            $realip = getenv("HTTP_X_FORWARDED_FOR");
        } else if (getenv("HTTP_CLIENT_IP")) {
            $realip = getenv("HTTP_CLIENT_IP");
        } else {
            $realip = getenv("REMOTE_ADDR");
        }
    }  
    return $realip;
}


IP库查询:
1.淘宝IP地址库
http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串]


2.新浪
http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=[IP地址字串]


3.当前查询
(1)搜狐

<script type="text/javascript" src="http://pv.sohu.com/cityjson?ie=utf-8" charset="utf-8"></script>
<script type="text/javascript">
var i=returnCitySN;
document.write('您的IP<u>' + i['cip'] + '</u>归属地为<u>' + i['cname'] + '</u>');
</script>


(2)新浪

<script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></script>
<script type="text/javascript">
var i=remote_ip_info;
document.write('IP范围:' + i['start']+'-'+i['end'] + '\r\n<br />归属地:' + i['country'] + i['province'] + i['city'] + i['isp']);
</script>


用淘宝IP库获取所在地区

function getCity($ip) {
    $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
    $ip=json_decode(file_get_contents($url));
    if((string)$ip->code=='1'){
    return false;
    }
    $data = (array)$ip->data;
    return $data;
}


下载文件 (已下载 662 次)
Tags: ,

php验证码类

seatop , 2013年4月20日 , 计算机与网络 , 评论(0) , 引用(0) , 阅读(4477) , Via 本站原创

Highslide JS


<?php
class captchaImage {
    public $width=120;                      //图片宽度
  public $height=25;                      //图片高度
  public $length=6;                       //验证码长度
  public $bgColor='#fff';                 //背景颜色
  public $textColor='#999';               //字符颜色
  public $graphicColor='#666';            //干扰线颜色
  public $fontSize=18;                    //字符大小
    public $type=2;                          //0-数字;1-字母;2(或其它)-数字字母混合
  
  //随机字符
  public function randChar() {
      $randchar="";
    for($i=0;$i< $this->length;$i++) {
        $randchar.=chr(rand(97,122));
    }
    return $randchar;
  }
  
  //随机数字
  public function randNum () {
      $randnum="";
    for($i=0;$i< $this->length;$i++) {
        $randnum.=chr(rand(48,57));
    }
    return $randnum;
  }
  
  //随机字符数字混合
  public function randNC() {
      $randnc="";
    for($i=0;$i< $this->length;$i++){
        if(rand(1,10)%2==0){
          $randnc.=chr(rand(48,57));
      }else{
          $randnc.=chr(rand(97,122));          
      }
    }
    return $randnc;
  }
  
  //十六进制颜色值转RGB
  public function hex2rgb($hexcolor) {
      if($hexcolor['0']=='#') {
        $hexcolor=substr($hexcolor,1);
    }
    if(strlen($hexcolor)==6){
        list($r,$g,$b)=array($hexcolor['0'].$hexcolor['1'],$hexcolor['2'].$hexcolor['3'],$hexcolor['4'].$hexcolor['5']);
    }else if(strlen($hexcolor)==3){
        list($r,$g,$b)=array($hexcolor['0'].$hexcolor['0'],$hexcolor['1'].$hexcolor['1'],$hexcolor['2'].$hexcolor['2']);
    }else{
        return false;
    }
    $r=hexdec($r);
    $g=hexdec($g);
    $b=hexdec($b);
    return array($r,$g,$b);
  }
  
  //图片生成
  public function display() {
      $img=imagecreatetruecolor($this->width,$this->height);
    $bgc=$this->hex2rgb($this->bgColor);
    $bgcolor=imagecolorallocate($img,$bgc['0'],$bgc['1'],$bgc['2']);
    $tc=$this->hex2rgb($this->textColor);
    $textcolor=imagecolorallocate($img,$tc['0'],$tc['1'],$tc['2']);
    $gc=$this->hex2rgb($this->graphicColor);
    $graphiccolor=imagecolorallocate($img,$gc['0'],$gc['1'],$gc['2']);
    imagefilledrectangle($img,0,0,$this->width,$this->height,$bgcolor);
    for($i=0;$i<6;$i++){
        imageline($img,0,rand()%$this->height,$this->width,rand()%$this->height,$graphiccolor);
    }
    if($this->type==1){
        $randstr=$this->randChar();
    }else if($this->type==0){
        $randstr=$this->randNum();
    }else{
        $randstr=$this->randNC();
    }
    $_SESSION['CAPTCHA_IMAGE']=$randstr;    //生成SESSION值
    imagettftext($img,$this->fontSize,0,8,$this->height-5,$textcolor,"BOOKOSBI.TTF",$randstr);
    header("Content-type:image/png");
    imagepng($img);
    imagedestroy($img);  
  }  
}

//实例验证码图片 验证码值:$_SESSION['CAPTCHA_IMAGE']
session_start();
$c=new captchaImage();
$c->display();

下载文件 (已下载 697 次)
Tags: ,
php为服务器端脚本程序,可用于处理交互数据。

而交互页面一般离不开表单,如注册、登录、发布信息、留言……

表单使用表单标签定义,如:

<form action="do.php" method="post">
    <input type="submit" value="提交"/>
</form>


页面上只有一个提交按钮,提交后服务器端得到的是一个空数组

Array ( ) 返回


服务器端处理表单数据的文件为do.php,内容是

<?php
print_r($_POST);
?>
<a href="form.php">返回</a>


form标签有一个必需属性action,属性值为提交表单后处理表单数据的文件地址。

常用的可选属性如:
method属性,属性值为post和get,用于规定发送数据的方式。它们的区别主要是两个:
1.post数据量大,而get数据量小;2.post安全,而用get方式是表单数据将出现在action属性URL后面,容易被偷窥者捕捉。

enctype属性,值为application/x-www-form-urlencoded(默认)、multipart/form-data、text/plain,用于规定表单数据的编码方式,默认方式对所有字符编码,text/plain方式时空格变为“+”,特殊字符不编码,而multipart/form-data方式不对数据编码,用于上传文件。

表单元素input,type类型较多,可以定义单行文本框text,密码框possword,单选框radio,复选框checkbox,文件上传file,
提交按钮submit,重置按钮reset,图象按钮image,还有一般用于javascript的可点击按钮,隐藏字段hidden。

如:

<form action="do.php" method="post">
    text:<input type="text" name="text" value="text"/><br/>
    password:<input type="password" name="password" value="password"/></br/>
    radio:</br>
    <input type="radio" name="radio" value="radio1"/>radio1
    <input type="radio" name="radio" value="radio2" checked="checked"/>radio2<br/>
    checkbox1:<input type="checkbox" name="checkbox1" value="checkbox1" checked="checked"/><br/>
    checkbox2:<input type="checkbox" name="checkbox2" value="checkbox2"/><br/>
    <input type="hidden" name="hidden" value="hidden"/>
    <input type="submit" value="提交"/><br/>
    <input type="reset" value="重置"/>
</form>


显示为:

Highslide JS

提交后将会得到:

Array ( [text] => text [password] => password [radio] => radio2 [checkbox1] => checkbox1 [hidden] => hidden ) 返回


input标签其他一些常用属性:value元素值,name元素值(php数组的键值),readonly(readonly)只读字段,checked(checked)加载是是否被选中(用于复选、单选按钮),src图象按钮的图片URL,disabled(disabled)禁用元素(可与javascript配合使用)。

多行文本输入元素textarea
<textarea name="textarea">textarea</textarea>

功能类似于input(text),自动换行属性wrap,值为virtual(不插入换行符)和physical(有换行符)。

菜单元素select,属性multiple(multiple)控制是否能多选(多选时name需用数组,如“name[]”),size(大于1的数)控制显示的选项数目。
菜单中的选项元素option,属性selected(selected)定义加载时该项为选中状态。
如:

<select name="select" multiple="multiple">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3" selected="selected">option3</option>
<option value="option4" selected="selected">option4</option>
<option value="option5">option5</option>
<option value="option6">option6</option>
</select>


label标签为input元素定义标注,属性for的值为input元素的id,用于绑定相应的input元素。

表单元素分组标签fieldset,有特殊的显示效果。对应使用的标题标签legend。

菜单元素分组标签optgroup,属性label的值分组标题。

如:

<fieldset>
  <legend>select</legend>
  <select name="select" size="8">
  <optgroup label="group1">
      <option value="option1">option1</option>
    <option value="option2">option2</option>
    <option value="option3" selected="selected">option3</option>
                </optgroup>  
  <optgroup label="group2">
      <option value="option4" selected="selected">option4</option>
    <option value="option5">option5</option>
    <option value="option6">option6</option>
  </optgroup>
  </select>
  </fieldset>


效果:

Highslide JS

Tags: , ,

PHP密码表生成

seatop , 2012年7月28日 , 计算机与网络 , 评论(0) , 引用(0) , 阅读(2454) , Via 本站原创
自己能记住的密码不安全,有时还会忘记!生成一张密码表,直接复制密码吧。

如:

kI8Zw[&;O-G3*b_ooR_/=@f[W@g6::
#GM@H0i9:y:9IdT&6{crR]AG^6TuKa
v&;NS+|X!irNH9n,C<1|z(h!hBxct@
S"wfvI{iuuZ0puy-XEVFNqV1D8T2X&
Y]~6=;v8i=3(XI22psfS.D1ZV.CCdt
\;aon>'b<yzcr-yVvA,P8U)787y}eB
9L$D/u#:4~%QQ}w&`W!Ei!.LG|agac
L61wnB~oZ+d01zJ.AqiMN<lDH6+WP-
l<V{M8}44]VnY5`:g1.S87?)3\&s2'
aE<h&W-KQxk@uGq-TMI(?)+sTg|g(F
\H9Q0+w'1RHShtYrOxlSOqrR@E.;-g
MlK^3RG?0JXMc!)?a3PYINxQknyj,b
^[7'^hQG$HiaE=CBm].Gt.I=e%)!w%
L}UDE56g40#EhkU!FWun|O^Vm~wKi&
;22/o~u71Z:kF6,k)WmaBt1KkrVVMe
n}!3;2NOk-O@c=.yq^"$Y_3nh<=$b!
Gt7k+)g*Pr'v3zRa9S|F=CgQG\d~2(
3?dv%MXqYtv,cU:Idyh!L"|V<7!?%W
K!(RFm5#JOnTa7e(dk;'\A?P"]3o{t
g%(k?XKYiK`!H)o7,MS#5(sVUrIXN>
=?oD)MzSt8bh;FEPC,tgf-S{O_1+5H
._"\<XN"{Bbj~x9_fk:r$u>+6dN\/6
E,1t+n,`7I@%s2_}ZlLzTOTw9|<BqM
R5xbX~Vs?\De)[IMdwAmU~3~JmWceq
Y29(p/C{GmvMtu5'C[.dKc#v5CdX;>
T7ejCn.NRm[\r1izdE`^yFxMsb[ZB7
BlfO58qJla&S5>3h$rYWBU,zj+)BFf
Dhl/=\)Xdxph|.1su6__q]HA_D"[bu
Tfi/[E7\@m{=:c9[Q>}U`@NXp~XaZ"
_>(ZSInOUQzuVS&Sw|6[Ji'sNG^Rtr


生成此密码表的代码:

<?php
function ps(){
$i=rand(33,126);
return pack("C*",$i);
}
for($i=0;$i<900;$i++){
   if($i%30==0){echo '<br/>';}
   echo '<span>'.ps().'</span>';  
}
Tags: ,
该系统只有一个php文件,大约17K大小,是一个很简单的html内容发布程序。

由于很简单,似乎没有什么作用;但由于简单,从而可以自由发挥,可以发布公告,活动,专题,个人简历等内容,不过需要html及css等相关知识。

说明:
1.将该文件上传至任何位置都可以,默认文件名为html.php,可自行修改(安全保证的一方面)。访问该文件进行密码初始化。密码加密后保存,一定程度上保证密码安全。
Highslide JS
2.设置密码后的登录界面。
Highslide JS
需打开cookie,密码错误次数设限。
Highslide JS
3.登录后的界面,接下来就可以创建和管理HTML文件,当然只能在该程序目录下(为了安全),可以上传,管理各种附件,主要用于插入图片。
Highslide JS
4.创建html文件,原本想加入第三方编辑器,可以所见即所得,感觉没必要,一切都DIY。
Highslide JS
5.编辑已有的HTML文件源码
Highslide JS

程序下载:最新的也许,也许不再更新,呵呵
下载文件 (已下载 447 次)
Tags: , ,
分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]
百度搜索
最新日志
主机推荐
热门Tags