当前位置:  编程技术>php
本页文章导读:
    ▪google pr值查询接口 - mckee1990      PR(全称PageRank)是Google衡量一个网站的重要标准之一,从而影响Google搜索结果排名。Google官方提供了查询PR的API,如本站PR值:http://toolbarqueries.google.com.hk/tbr?client=navclient-auto&features=Rank:&q=in.........
    ▪php导出word格式数据的代码实例       本节内容:一个php导出文档的类 例子: 代码如下:<?php /*** 生成word文档的类* */class word{     function start()    {        ob_start();        echo '<html xmlns:o="urn:schemas-microsoft-com:office:of.........
    ▪php页面防重复提交方法总结       1、提交按钮置disabled       当用户提交后,立即把按钮置为不可用状态。这种用js来实现。          提交前 代码如下:        $("#submit").attr('disabled','true');         $("#submit").val(".........

[1]google pr值查询接口 - mckee1990
    来源:    发布时间: 2013-11-30

PR(全称PageRank)是Google衡量一个网站的重要标准之一,从而影响Google搜索结果排名。Google官方提供了查询PR的API,如本站PR值:
http://toolbarqueries.google.com.hk/tbr?client=navclient-auto&features=Rank:&q=info:phpddt.com&ch=8fabc62ea
Google PR值查询原理及其简单,只要获取如上接口返回的值处理下就OK了:

<?php
 
/*
*功能:对URL进行编码
*参数说明:$web_url 网站URL,不包含"http://"
*/
function HashURL(/blog_article/$url/index.html)
{
$SEED = "Mining PageRank is AGAINST GOOGLE’S TERMS OF SERVICE. Yes, I’m talking to you, scammer.";
$Result = 0x01020345;
for ($i=0; $i<strlen($url); $i++)
{
$Result ^= ord($SEED{$i%87}) ^ ord($url{$i});
$Result = (($Result >> 23) & 0x1FF) | $Result << 9;
}
return sprintf("8%x", $Result);
}
 
/*
*功能:根据google提供的pr查询接口获取pagerank
*参数说明:$domain 网站域名,不包含"http://"
*/
function pagerank($domain)
{
$StartURL = "http://toolbarqueries.google.com/tbr?client=navclient-auto&features=Rank:&q=info:";
$GoogleURL = $StartURL.$domain. '&ch='.HashURL(/blog_article/$domain/index.html);
echo $GoogleURL.'<br>';
$fcontents = file_get_contents("$GoogleURL");
$pagerank = substr($fcontents,9);
if (!$pagerank) return "0";else return $pagerank;
}
echo pagerank("phpddt.com");
?>

值得注意的是该接口需要获取一个ch的值,已有HashURL()解决,但是该代码传到服务器Linux 64上出现了int overflow溢出问题,可用如下代码解决:

function trunkbitForce32bit($n) {
if (PHP_INT_SIZE <= 4) {
settype($n, 'float');
if ($n < 0)
$n += 4294967296;
return $n;
}
else
{
$clearbit = '';
for ($i = 0; $i < PHP_INT_SIZE - 4; $i++) {
$clearbit .= '00';
}
for ($i = 0; $i < 4; $i++) {
$clearbit .= 'ff';
}
return ($n & hexdec($clearbit));
}
}

查看演示


本文链接:http://www.cnblogs.com/phpddt/p/3291183.html,转载请注明。


    
[2]php导出word格式数据的代码实例
    来源: 互联网  发布时间: 2013-11-30

本节内容:
一个php导出文档的类

例子:

代码如下:

<?php

/**
* 生成word文档的类
*
*/
class word
{
    function start()
    {
        ob_start();
        echo '<html xmlns:o="urn:schemas-microsoft-com:office:office"
        xmlns:w="urn:schemas-microsoft-com:office:word"
        xmlns="http://www.w3.org/TR/REC-html40">';
        }
    function save($path)
    {    
        echo "</html>";
        $data = ob_get_contents();
        ob_end_clean();

        $this->wirtefile ($path,$data);
    }

    function wirtefile ($fn,$data)
    {
        $fp=fopen($fn,"wb");
        fwrite($fp,$data);
        fclose($fp);
    }
}

//导出的程序文件
//导出 ---start---
require SITE_ROOT.'include/word.class.php';  //类文件放在根目录下的include文件夹下
$word = new word();
//查询数据填入word 中
$result = $db->query("SELECT * FROM ".DB_PRE."box where status='9' order by boxid DESC");
while($r = $db->fetch_array($result))
{
  $r['orderinfo'] = $db->get_one("SELECT * FROM ".DB_PRE."order where orderid='".$r['orderid']."'");
  $r['wrapinfo']  = $db->get_one("SELECT * FROM ".DB_PRE."wrap where orderid='".$r['orderid']."'");
 $boxlist[] = $r;
}

 foreach($boxlist as $key=>$val){
    $order->UPCAbarcode($val['box_code']);

    $html .='<table width=800 cellpadding="6" align="center" cellspacing="5" bgcolor="#000000">
    <tr bgcolor="White" height="50">
      <td width=80 >iGo运<br/>单号</td>
      <td width=300 ><img src='/blog_article/.$val['iGocode_code'].' /><br/>  '.$val['box_code'].'</td>
      <td width=60 >日期</td>
      <td width=100 >'.date('Y-m-d',$val[create_date]).'</td>
      <td width=100 >标示<br/>姓名</td>
      <td width=240 >'.$val[code].'/'.$val['orderid'].'<br/>'.$val['orderinfo']['user_name'].'</td>
    </tr>
    <tr bgcolor="White">
      <td width=60 >件数</td>
      <td width=40 >3</td>
      <td width=40 >重量</td>
      <td width=150 >56.5</td>
      <td width=40 >品名</td>
      <td width=390 >咬咬了,吸盘碗,学饮杯,鱼干油</td>
    </tr>
    <tr bgcolor="White">
      <td width=110 >服务<br/>类别</td>
      <td width=200 >库房服务</td>
      <td width=110 >服务<br/>要求</td>
      <td width=280 >合小箱</td>
    </tr>
    <tr bgcolor="White">
      <td width=120 ><br/><br/>客户<br/>备注<br/><br/></td>
      <td width=580 >'.$val['orderinfo']['beizhu'].'</td>    
    </tr>
    <tr bgcolor="White">
      <td width=120 ><br/><br/><br/>到货<br/>情况<br/><br/><br/><br/></td>
      <td width=580 >什么问题?果点不到<br/>什么问题?果点不到<br/>什么问题?果点不到<br/><br/><br/><br/><br/><br/><br/><br/></td>
    </tr>
    </table> <br/><br/><br/><br/>
'; 
 }
     $word->start();
     $filename = '拣货单导出.doc';
     echo $html;
      $word->save($filename);

      //文件的类型
      header('Content-type: application/word');
      header('Content-Disposition: attachment; filename="拣货单导出.doc"');
      readfile($filename);
      ob_flush();
      flush();
     exit();
//导出word --end--


    
[3]php页面防重复提交方法总结
    来源: 互联网  发布时间: 2013-11-30

1、提交按钮置disabled

      当用户提交后,立即把按钮置为不可用状态。这种用js来实现。

         提交前

代码如下:

        $("#submit").attr('disabled','true');
         $("#submit").val("正在提交,请稍等");

 

       ....................................................................................

    执行后,把按钮置为原来状态

代码如下:

      $('#submit ').removeAttr('disabled');
      $("#submit ").val("确定提交");


2、过期时间法

    思路:当用户提交按钮后生成一个token(每次业务提交token 为唯一值)存入session,并设置过期时间。当用户再此提交时,检测token是否一致且是否过期,若一致且没有过期,则认为提交了二次。当程序执行出错的时候,则需要清除存入session的值。见下面程序

代码如下:

function checkRepeatSubmit($uniqueid = '', $expire = 30) {

        $uniqueid = empty($uniqueid) ? Yii::app()->user->id . Yii::app()->user->name . Yii::app()->user->mihome : $uniqueid;
        $token = md5("wms_check_repeat" . $uniqueid);

        $time = time();

        if (isset($_SESSION['token']) && !empty($_SESSION['token']) && $_SESSION['token'] == $token && ($time - $_SESSION['expire_time'] < $expire)) {

            return false;
        } else {

            $_SESSION['token'] = $token;
            $_SESSION['expire_time'] = $time;
            //session写入的时候会等待整个页面加载完成,用此函数可以立即写入
            session_write_close();
            return true;
        }
    }

 //删除存入的值

   function cancelRepeatSubmit() {

        unset($_SESSION['token']);
        unset($_SESSION['expire_time']);
    }



3、token销毁法

思路:当页面进行加装的时候生成token,存在session中,并写在表单里。表单提交的时候随表单提交给服务端,服务端通过session存入的token与token进行比较,若相等,则销毁seesion中存入的token,当页面遭到二次提交的时候,由于存入session中的token不存在而报错。下面是代码

代码如下:

 /**
     * 第二种方案
     * 1、产生token,并存在session中
     * 2、随页面生成
     * 3、提交页面与session进行比对,成功后对session进行销毁
     * 4、第二次提交则不存在这个值而报错
     * @param type $uniqueid
     * @return type
     */
    function createToken($uniqueid) {

        $uniqueid = empty($uniqueid) ? Yii::app()->user->id . Yii::app()->user->name . Yii::app()->user->mihome : $uniqueid;
        $token = md5("wms_check2_repeat" . $uniqueid);
        $_SESSION['form_token'] = $token;

       ​session_write_close();


        return $token;
    }

    function checkToken($token) {

        if (!isset($_SESSION['form_token']) || empty($_SESSION['form_token']) || $_SESSION['form_token'] != $token) {
            return false;
        } else {
            unset($_SESSION['form_token']);
            return true;
        }
    }

上面总结了三种方法,个人感觉第一种跟第二种方法配合着用会达到更好的效果。第二种方法与第三种方法个人感觉第三种要有优势点。

第二种与第三种方法都是把token写在session中,这种方法好处是节省存储空间,但坏处是由于session是需要整个页面加载完毕才能写入,故当整个页面加载比较慢,且用户点击多次提交,可能由于session还没写入导致系统还认为是第一次输入。导致验证不起作用。好在php函数提供了一个牛逼的函数。   session_write_close(),可以立即把session写入,不用等待页面加载完成。同事对于session的存入也有很多种方法可以选择,可以存在redis,memcache或者数据库都可以的。


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
软件工程/软件设计 iis7站长之家
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3