将人民币数字转化为人民币大写格式的PHP函数

这个函数用来把人民币数字转换为人民币大写格式,这个函数感觉还可以。要的拿去吧。


function toCNFormat($data) {
 $data = strpos($data, ".") === false? $data . ".00":$data;
 if (!preg_match("/^[0-9\.]+$/", $data))return "";
 $capnum = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
 $capdigit = array("", "拾", "佰", "仟");
 $subdata = explode(".", $data);
 $yuan = $subdata[0];
 $j = 0;
 $nonzero = 0;
 for($i = 0;$i < strlen($subdata[0]);$i++) {
  if (0 == $i) {
   if ($subdata[1]) {
    $cncap = substr($subdata[0], -1, 1) != 0?"元":"元零";
   } else {
    $cncap = "元";
   }
  }
  if (4 == $i) {
   $j = 0;
   $nonzero = 0;
   $cncap = "万" . $cncap;
  }
  if (8 == $i) {
   $j = 0;
   $nonzero = 0;
   $cncap = "亿" . $cncap;
  }
  $numb = substr($yuan, -1, 1);
  $cncap = ($numb)?$capnum[$numb] . $capdigit[$j] . $cncap:(($nonzero)?"零" . $cncap:$cncap);
  $nonzero = ($numb)?1:$nonzero;
  $yuan = substr($yuan, 0, strlen($yuan)-1);
  $j++;
 }
 
 if ($subdata[1]) {
  $chiao = substr($subdata[1], 0, 1)?$capnum[substr($subdata[1], 0, 1)] . "角":"零";
  $cent = substr($subdata[1], 1, 1)?$capnum[substr($subdata[1], 1, 1)] . "分":"";
 }
 $cncap .= $chiao . $cent . "整";
 $cncap = preg_replace("/(零)+/", "\\1", $cncap);
 $cncap = str_replace("零整", "整", $cncap);
 return $cncap;
}
echo toCNFormat("110502.35");


关键词: php函数 , 人民币大写

JS实现iframe框架延后加载

JS实现iframe框架延后加载。应用场景,譬如:登录状态区域部分,需要进行延后加载,但是框架直接通过JS更改地址是无法进行正常加载的,所以代码如下。

需要加载区域HTML代码:

<div id="indexlogin"></div>

底部JS代码:

<span id="tmpjsnews"><script type="text/javascript" src="http://bbs.wehefei.com/forum.php?mod=checklogin" language="javascript"></script></span>
<script type="text/javascript">document.getElementById("indexlogin").innerHTML=document.getElementById("tmpjsnews").innerHTML;</script>

关键词: 延后加载 , iframe框架

php安全开发:添加随机字符串验证,防止伪造跨站请求

伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等。那怎么防范伪造跨站攻击呢?

yahoo对付伪造跨站请求的办法是在表单里加入一个叫.crumb的随机串;而facebook也有类似的解决办法,它的表单里常常会有post_form_idfb_dtsg

比较常见而且也很廉价的防范手段是在所有可能涉及用户写操作的表单中加入一个随机且变换频繁的字符串,然后在处理表单的时候对这个字符串进行检查。这个随机字符串如果和当前用户身份相关联的话,那么攻击者伪造请求会比较麻烦。现在防范方法基本上都是基于这种方法的了


随机串代码实现

咱们按照这个思路,山寨一个crumb的实现,代码如下:

» 阅读全文

关键词: 伪造跨站 , php安全开发

Simsimi (小黄鸡) API接口(PHP)公布,小黄鸡API接口非官方PHP版本来啦

最近韩国的聊天机器人应用SimSimi非常受到欢迎,很多码农立马想到怎么去搞到他的Simsimi (小黄鸡) api接口呢?O(∩_∩)O哈哈~,Simsimi (小黄鸡) API接口官方有个天数限制,好像是90天吧,那有没有免费好用的Simsimi (小黄鸡) API接口呢?那是自己动手把。

什么是SimSimi:

SimSimi以吉祥物“小鸡鸡”自居。SimSimi机器人的界面非常可爱,深受女生欢迎,最近网络上还刮起了一阵和SimSimi机器人对话的旋风。


    <?php   
    /**
     *  
     *作者:@Jin  
     *日期:2012.11.27  
     *  
     **/  
      
    //function simsimi($keyword)   
    //{   
    //做成API接口的话,请发起GET请求,返回Josn   
    //只自己用的话,封装成一个函数,返回JSON字段中的response   
      
      
    if(isset($_GET['key'])){       
        $keyword = $_GET['key'];   
        $url = "http://www.simsimi.com/talk.htm?lc=ch";   
      
        //这个curl是因为官方每次请求都有唯一的COOKIE,我们必须先把COOKIE拿出来,不然会一直返回“HI”   
      
        $ch = curl_init();   
        curl_setopt($ch, CURLOPT_URL, $url);   
        curl_setopt($ch, CURLOPT_HEADER, 1);   
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   
        $content = curl_exec($ch);   
        curl_close($ch);   
        list($header, $body) = explode("\r\n\r\n", $content);   
        preg_match("/set\-cookie:([^\r\n]*)/i", $header, $matches);   
        $cookie = $matches[1];   
      
      
        $urll = 'http://www.simsimi.com/func/req?msg=' .$keyword. '&lc=ch';   
           
        // 这个CURL就是模拟发起请求咯,直接返回的就是JSON   
        $ch = curl_init();   
        curl_setopt($ch, CURLOPT_URL, $urll);   
        curl_setopt($ch, CURLOPT_HEADER, 0);   
        curl_setopt($ch, CURLOPT_REFERER, "http://www.simsimi.com/talk.htm?lc=ch");   
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   
        curl_setopt($ch, CURLOPT_COOKIE, $cookie);   
        $content = curl_exec($ch);   
        curl_close($ch);   
           
        //输出json   
        print_r($content);   
          
        /*$reply = '你说的话太高深啦,我还听不懂,你可以教教我吗?[兔子]';   
        $json = json_decode($json, 1);  
        if (isset($json['response'])) {  
            $reply = $json['response'];  
        }  
        echo $reply;  
    }*/  
    }   
      
    ?>  


关键词: simsimi接口 , 小黄鸡api接口 , api接口

VideoUrlParser互联网视频地址分析工具,支持优酷、土豆等

VideoUrlParser是一款基于PHP根据视频URL抓取视频信息的工具,支持优酷、土豆、酷六、56、乐视、搜狐、

腾讯、新浪。 根据视频URL抓取视频信息,包括缩略图、链接地址、播放地址等。

使用方法:

require_once "VedioUrlParser.class.php";
$url = "http://v.youku.com/v_show/id_XMjkwMzc0Njg4.html";
VedioUrlParser::parse($url);
演示地址:http://www.jincon.com/attachments/videourlparser/

关键词: 视频地址分析

CURL伪造IP和来路,还可以进行投票

curl伪造ip和来路,还可以进行投票,但是,$_SERVER['REMOTE_ADDR']无法伪造。

客户端:

<?php
$headers['CLIENT-IP'] = '202.103.229.40'; 
$headers['X-FORWARDED-FOR'] = '202.103.229.40';
 
$headerArr = array(); 
foreach( $headers as $n => $v ) { 
    $headerArr[] = $n .':' . $v;  
}
 
ob_start();
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "http://localhost/curl/server.php");
curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr );  //构造IP
curl_setopt ($ch, CURLOPT_REFERER, "http://www.163.com/ ");   //构造来路
curl_setopt( $ch, CURLOPT_HEADER, 1);
 
curl_exec($ch);
curl_close ($ch);
$out = ob_get_contents();
ob_clean();
 
echo $out;
?>
服务端:

<?php
function GetIP(){
    if(!empty($_SERVER["HTTP_CLIENT_IP"]))
        $cip = $_SERVER["HTTP_CLIENT_IP"];
    else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
        $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    else if(!empty($_SERVER["REMOTE_ADDR"]))
        $cip = $_SERVER["REMOTE_ADDR"];
    else
    $cip = "无法获取!";
    return $cip;
}
echo "<BR>访问IP: ".GetIP()."<br>";
echo "<BR>访问来路: ".$_SERVER["HTTP_REFERER"];
?>


关键词: curl伪造ip

Js添加网页键盘翻页功能,实现键盘控制翻页js代码

网站添加了键盘左右按键和回车按键来翻页。通过按左右键进入上下章,这些实用的小功能可以提高用户阅读体验。个人觉得非常不错,呵呵,现在附上代码:

举例:
<a id="last" href="<?=$lefturl?>">上一章</a>
<a id="booklist" href="<?=$booklisturl?>">返回目录</a>
<a id="next" href="<?=$righturl?>">下一章</a>
JS代码:

<script language="javascript">
<!--
last=document . getElementById("last").href;
next=document . getElementById("next").href;
booklist=document . getElementById("booklist").href;
function keyUp(e) {
if(navigator.appName == "Microsoft Internet Explorer")
{
var keycode = event.keyCode;
var realkey = String.fromCharCode(event.keyCode);
}else
{
var keycode = e.which;
var realkey = String.fromCharCode(e.which);
}
if(keycode==39){
window.location.href=next;
}
if(keycode==37){
window.location.href=last;
}
if(keycode==13){
window.location.href=booklist;
}
}
document.onkeydown = keyUp;
//-->
</script>

关键词: js键盘翻页

分享2种PHP的源码加密方式,附代码

PHP的源码加密方式1:


<?php 
function encode_file_contents($filename) { 
$type=strtolower(substr(strrchr($filename,'.'),1)); 
if('php'==$type && is_file($filename) && is_writable($filename)){// 如果是PHP文件 并且可写 则进行压缩编码 
$contents = file_get_contents($filename);// 判断文件是否已经被编码处理 
$contents = php_strip_whitespace($filename); 
// 去除PHP头部和尾部标识 
$headerPos = strpos($contents,'<?php'); 
$footerPos = strrpos($contents,'?>'); 
$contents = substr($contents,$headerPos+5,$footerPos-$headerPos); 
$encode = base64_encode(gzdeflate($contents));// 开始编码 
$encode = '<?php'."\n eval(gzinflate(base64_decode("."'".$encode."'".")));\n\n?>"; 
return file_put_contents($filename,$encode); 

} 
return false; 
} 
//调用函数 
$filename='dam.php'; 
encode_file_contents($filename); 
echo "OK,加密完成!" 
?>

PHP的源码加密方式2:

<?php 
function RandAbc($length=""){//返回随机字符串
  $str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  return str_shuffle($str);
}
$filename='dam.php';
$T_k1=RandAbc();//随机密匙1
$T_k2=RandAbc();//随机密匙2
$vstr=file_get_contents($filename);//要加密的文件
$v1=base64_encode($vstr);
$c=strtr($v1,$T_k1,$T_k2);//根据密匙替换对应字符。
$c=$T_k1.$T_k2.$c;
$q1="O00O0O";
$q2="O0O000";
$q3="O0OO00";
$q4="OO0O00";
$q5="OO0000";
$q6="O00OO0";
$s='$'.$q6.'=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$'.$q1.'=$'.$q6.'{3}.$'.$q6.'{6}.$'.$q6.'{33}.$'.$q6.'{30};$'.$q3.'=$'.$q6.'{33}.$'.$q6.'{10}.$'.$q6.'{24}.$'.$q6.'{10}.$'.$q6.'{24};$'.$q4.'=$'.$q3.'{0}.$'.$q6.'{18}.$'.$q6.'{3}.$'.$q3.'{0}.$'.$q3.'{1}.$'.$q6.'{24};$'.$q5.'=$'.$q6.'{7}.$'.$q6.'{13};$'.$q1.'.=$'.$q6.'{22}.$'.$q6.'{36}.$'.$q6.'{29}.$'.$q6.'{26}.$'.$q6.'{30}.$'.$q6.'{32}.$'.$q6.'{35}.$'.$q6.'{26}.$'.$q6.'{30};eval($'.$q1.'("'.base64_encode('$'.$q2.'="'.$c.'";eval(\'?>\'.$'.$q1.'($'.$q3.'($'.$q4.'($'.$q2.',$'.$q5.'*2),$'.$q4.'($'.$q2.',$'.$q5.',$'.$q5.'),$'.$q4.'($'.$q2.',0,$'.$q5.'))));').'"));';
$s='<?php
'.$s.
'
 ?>';
echo "OK,加密完成!";
//生成 加密后的PHP文件
$fpp1 = fopen('dam.php','w');
fwrite($fpp1,$s) or die('写文件错误'); 
?> 

其实,PHP加密源码方式有很多,譬如,免费的微盾PHP加密,还有 phpjm . net 搞的在线加密,只是phpjm更复杂点而已。

关键词: php源码加密