xml地图|网站地图|网站标签 [设为首页] [加入收藏]

正规赌博平台

当前位置:网上十大正规赌博平台 > 正规赌博平台 > 布隆过滤器,php微信开发之自定义菜单实现

布隆过滤器,php微信开发之自定义菜单实现

来源:http://www.nb-machinery.com 作者:网上十大正规赌博平台 时间:2019-07-11 01:03

前文《布隆过滤器(Bloom Filter)详解》主要讲了布隆过滤器(Bloom Filter)的基本原理和相关应用,本文将使用 C 语言实现一个简单的布隆过滤器(Bloom Filter)。

编辑模式和开发模式是有冲突的。所以我们启用微信公众号的开发模式之后,那些菜单是看不到的哦。不过现在个人订阅号是不可以使用高级开发者模式的,如自定义菜单,不过我们还是可以通过测试号来测试一下,然后移代码到服务号。 

本文实例讲述了PHP解压ZIP文件到指定文件夹的方法。分享给大家供大家参考,具体如下:

自定义类型包括如下:

/**
 * function: 解压zip 格式的文件
 * author:friker
 * date:2015-15-14
 * reference:http://php.net/manual/zh/ref.zip.php
 * all rights reserved:wujiangwei123@126.com
 */
class Unzip{
  public function __construct(){
    //init code here...
    header("content-type:text/html;charset=utf8");
  }
  /**
  * 解压文件到指定目录
  *
  * @param  string  zip压缩文件的路径
  * @param  string  解压文件的目的路径
  * @param  boolean 是否以压缩文件的名字创建目标文件夹
  * @param  boolean 是否重写已经存在的文件
  *
  * @return boolean 返回成功 或失败
  */
  public function unzip($src_file, $dest_dir=false, $create_zip_name_dir=true, $overwrite=true){
  if ($zip = zip_open($src_file)){
    if ($zip){
      $splitter = ($create_zip_name_dir === true) ? "." : "/";
      if($dest_dir === false){
        $dest_dir = substr($src_file, 0, strrpos($src_file, $splitter))."/";
      }
      // 如果不存在 创建目标解压目录
      $this->create_dirs($dest_dir);
       // 对每个文件进行解压
       while ($zip_entry = zip_read($zip)){
          // 文件不在根目录
          $pos_last_slash = strrpos(zip_entry_name($zip_entry), "/");
          if ($pos_last_slash !== false){
            // 创建目录 在末尾带 /
            $this->create_dirs($dest_dir.substr(zip_entry_name($zip_entry), 0, $pos_last_slash 1));
          }
          // 打开包
          if (zip_entry_open($zip,$zip_entry,"r")){
            // 文件名保存在磁盘上
            $file_name = $dest_dir.zip_entry_name($zip_entry);
            // 检查文件是否需要重写
            if ($overwrite === true || $overwrite === false && !is_file($file_name)){
              // 读取压缩文件的内容
              $fstream = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
              @file_put_contents($file_name, $fstream);
              // 设置权限
              chmod($file_name, 0777);
              echo "save: ".$file_name."<br />";
            }
            // 关闭入口
            zip_entry_close($zip_entry);
          }
        }
        // 关闭压缩包
        zip_close($zip);
      }
    }else{
      return false;
    }
    return true;
  }
  /**
  * 创建目录
  */
  public function create_dirs($path){
   if (!is_dir($path)){
     $directory_path = "";
     $directories = explode("/",$path);
     array_pop($directories);
     foreach($directories as $directory){
       $directory_path .= $directory."/";
       if (!is_dir($directory_path)){
         mkdir($directory_path);
         chmod($directory_path, 0777);
       }
     }
   }
  }
}
/*
 using:
 $z = new Unzip();
 $z->unzip("./bootstrap-3.3.4.zip",'./unzipres/', true, false);
*/

 

1、click:点击推事件 • 用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互;

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP操作zip文件及压缩技巧总结》、《php文件操作总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

#ifndef __BLOOM_FILTER_H__  #define __BLOOM_FILTER_H__    #include<stdlib.h>    typedef unsigned int (*hashfunc_t)(const char *);  typedef struct {      size_t asize;      unsigned char *a;      size_t nfuncs;      hashfunc_t *funcs;  } BLOOM;    BLOOM *bloom_create(size_t size, size_t nfuncs, ...);  int bloom_destroy(BLOOM *bloom);  int bloom_add(BLOOM *bloom, const char *s);  int bloom_check(BLOOM *bloom, const char *s);    #endif

#include<limits.h>  #include<stdarg.h>    #include"bloom.h"    #define SETBIT(a, n) (a[n/CHAR_BIT] |= (1<<(n%CHAR_BIT)))  #define GETBIT(a, n) (a[n/CHAR_BIT] & (1<<(n%CHAR_BIT)))    BLOOM *bloom_create(size_t size, size_t nfuncs, ...)  {      BLOOM *bloom;      va_list l;      int n;            if(!(bloom=malloc(sizeof(BLOOM)))) return NULL;      if(!(bloom->a=calloc((size CHAR_BIT-1)/CHAR_BIT, sizeof(char)))) {          free(bloom);          return NULL;      }      if(!(bloom->funcs=(hashfunc_t*)malloc(nfuncs*sizeof(hashfunc_t)))) {          free(bloom->a);          free(bloom);          return NULL;      }        va_start(l, nfuncs);      for(n=0; n<nfuncs;   n) {          bloom->funcs[n]=va_arg(l, hashfunc_t);      }      va_end(l);        bloom->nfuncs=nfuncs;      bloom->asize=size;        return bloom;  }    int bloom_destroy(BLOOM *bloom)  {      free(bloom->a);      free(bloom->funcs);      free(bloom);        return 0;  }    int bloom_add(BLOOM *bloom, const char *s)  {      size_t n;        for(n=0; n<bloom->nfuncs;   n) {          SETBIT(bloom->a, bloom->funcs[n](s)%bloom->asize);      }        return 0;  }    int bloom_check(BLOOM *bloom, const char *s)  {      size_t n;        for(n=0; n<bloom->nfuncs;   n) {          if(!(GETBIT(bloom->a, bloom->funcs[n](s)%bloom->asize))) return 0;      }        return 1;  }

2、view:跳转URL • 用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的网页URL,可与网页授权获取用户基本信息接口结合,获得用户基本信息。

希望本文所述对大家PHP程序设计有所帮助。

测试文件:

3、scancode_push:扫码推事件 • 用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后显示扫描结果(如果是URL,将进入URL),且会将扫码的结果传给开发者,开发者可以下发消息。

您可能感兴趣的文章:

  • php文件压缩之PHPZip类用法实例
  • php实现zip压缩文件解压缩代码分享(简单易懂)
  • PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
  • php在线解压ZIP文件的方法
  • php 解压zip压缩包内容到指定目录的实例

本文由网上十大正规赌博平台发布于正规赌博平台,转载请注明出处:布隆过滤器,php微信开发之自定义菜单实现

关键词: