自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(272)
  • 资源 (34)
  • 收藏
  • 关注

原创 golang RSA 解密前端jsencrypt发送的数据时异常 crypto/rsa: decryption error 解决方法

golang中 RSA解密前端(jsencrypt)发来的密文后出现 "crypto/rsa: decryption error" , 这个问题首先需要确认你的私匙和公匙是否匹配, 如果匹配 那检查入参数据类型, 前端发送来的rsa加密后的数据一般都是经过base64编码后的, 在后端进行RSA解码时需要对前端发送的数据进行base64解码!

2024-08-24 17:56:20 160

原创 vue element-plus el-drawer 自定义抽屉标题 template slot动态标题定义方法

如果我们需要动态标题,定义一个data变量 title 然后将数据绑定到这个变量上即可。默认抽屉定义, 这里的title就是标题的定义。如果我们需要自定义这个标题,就需要使用slot。

2024-08-19 16:53:32 224

原创 golang reflect反射方式修改对象的值 reflect.Value对象中的SetX类型(xxx) 和 Set(x reflect.Value) 方法的区别和使用总结

了解下面的这些函数, 对象和方法的定义对应我们学习golang的放射至关重要!!func Copy(dst, src Value) int // 数据拷贝函数func DeepEqual(x, y any) bool // 深度相等比较函数func Swapper(slice any) func(i, j int) // 交换函数type Kind // 反射类别type MapIter // map类型数据迭代对象定义。

2024-08-18 19:08:43 829

原创 golang 如何利用defer+recover()函数 将指定类型的panic异常转换为函数返回 error返回 使用方法示例

在golang开发的时候,对于业务逻辑中的某些panic异常,我们希望将某些不可控的panic异常转换为普通的 error并作为函数返回值返回, 如io 或者os中的某些操作就会导致panic异常,对于这个过程中的某些不可控的panic异常我们希望将某些类型的异常转换为 普通的error变量在函数里面返回。

2024-08-18 11:17:09 246

原创 zap日志库 自定义CallerEncoder 方法, 同时适用于其他几个Encoder如 LevelEncoder,TimeEncoder,NameEncoder,DurationEncoder等

从上面的配置中我们可以得知, 这个EncodeCaller他实际上是一个函数定义 type CallerEncoder func(EntryCaller, PrimitiveArrayEncoder) 如下图所示:我们要自定义这个EncodeCaller实际上就是定义这样一个函数即可。定义方式如下:即在我们初始化配置对象的时候对这个EncodeCaller定义一个函数即可,这样每次在zap执行的时候就会调用我们定义的这个函数。即,如下示例。

2024-08-17 15:07:54 409

原创 golang 字符串strings Title, Upper, Lower, Fold的代替处理库golang.org/x/text/cases使用方法总结, Caser对象使用

golang官方提供的这个扩展包text/cases 主要通过 Caser这个对象来处理字符串的大小写,他的定义如下:typeCasertypeOption可见这个结构体的属性t 是一个接口SpanningTransformer, 而这个接口又继承了Transformer接口Reset()

2024-08-17 12:29:41 835

原创 golang字符串首字母大写转换函数strings.Title已弃用解决方法 strings.Title is deprecated, golang.org/x/text/cases 代替用法示例

golang 中在使用strings.Title将首字母转为大写时会提示这个函数已经弃用,原因是这个函数无法正确处理Unicode字符,如中文。建议我们使用 golang.org/x/text/cases 来代替,

2024-08-17 11:40:48 144

原创 golang zap日志库 打印日志时显示的源文件始终是同一个问题解决方法 zap.Option函数可选项 zap.AddCallerSkip(1) 使用示例

golang 获取调用函数的源文件路径和所在行号, 获取异常发生的源文件路径和行号方法 -- runtime.Caller, Callers, CallersFrames获取调用堆栈函数使用与总结-CSDN博客。

2024-08-17 00:16:42 239

原创 viper配置文件读取管理库 一个支持12种文件类型,5种远程协议的配置文件管理和加载工具库 使用方法示例

viper是一个不错的配置文件管理库, 他支持12种文件类型,5种远程协议的配置文件管理和加载工具库 使用方法示例

2024-08-16 23:35:32 461

原创 zap logger 日志记录库 options接口类型 可选参数(函数)使用 总结

zap是go语言中的一个不错的日志记录库, 在我们创建zap.Logger对象的时候,第一个参数就是一个Core, 这个即是这个zap框架的内核,第二个参数options是一个可选参数,他的类型是一个名为Option的接口定义, 这个接口里面就一个方法 apply(*Logger) 参数就是我们要创建的这个Logger指针对象。 如下所示:从上面可见,我们在创建Logger对象的时候对于这个Logger对象,我们只提供了4个属性, 而实际上这个Logger对象里面的属性可不止4个, 那如果我们要对这些属性进

2024-08-15 13:38:16 441

原创 golang 获取调用函数的源文件路径和所在行号, 获取异常发生的源文件路径和行号方法 -- runtime.Caller, Callers, CallersFrames获取调用堆栈函数使用与总结

在golang中,我们可以通过go官方提供的runtime包中的 Caller函数获取是那个文件在哪一行调用了当前函数, 使用Callers, CallersFrames函数,我们可以获取完整的函数调用堆栈信息, 包括 调用函数所在的源码文件, 行号, 函数等信息。 这些信息在我们排查异常和解决异常信息时非常有用,有了这个信息,我们就可以快速定位问题发生的源文件和行号。 Caller函数定义 func runtime.Caller(skip int) (pc uintptr, file string, l

2024-08-15 12:10:18 983

原创 golang gin框架中创建自定义中间件的2种方式总结 - func(*gin.Context)方式和闭包函数方式定义gin中间件

gin框架自定义中间件常用的方式,1.定义一个参数为*gin.Context的函数或者方法。定义的方法就是创建一个 参数类型为 gin.HandlerFunc 【 他的原型定义为 type HandlerFunc func(*Context) 】的中间件,如: func XxxFoo(c *gin.Context) {}注意: 虽然这种方式定义的中间件和入参和路由处理函数的定义是一样的, 但是他们的用途和业务处理方式是有区别的, 在中间件中我们可以通过 c.Next() 方法继续后面的请求, 2....

2024-08-14 11:25:49 1029 1

原创 gin框架中的中断请求c.Abort()方法的作用和使用细节说明

在gin框架中,请求处理链即 handlers HandlersChain 他是一个类型定义为: type HandlerFunc类型的切片, 即 type HandlersChain []HandlerFunc。我们在路由中注册的路由地址和HandlerFunc 都被加入到了handlers中,Abort()方法的调用就会中断当前挂起的HandlerFunc。中断请求Abort()方法定义参考这里将gin上下文中的索引index设置为abortIndex 他的值为63。

2024-08-13 14:52:42 586

原创 vue axios http网络请求头包含非 CORS 白名单的请求标头 也被称作“简单标头”时, post, put,path,delete等请求CORS问题总结与解决方法

在我们从前端发送网络请求时所携带的标头非这些标头“Accept, Accept-Language, Content-Language, Content-Type, Range” 时即“非简单标头”。 当我们发送的请求头包含的请求头不是CORS 白名单的请求标头 时浏览器就会在请求发起之前自动发送一个预检请求。 只有在预检请求的结果OK后才会发起真正的请求。预检请求官方文档https://developer.mozilla.org/zh-CN/docs/Glossary/Preflight_request结果

2024-08-13 11:04:39 884

原创 macos brew 安装被禁止(disable)的Homebrew软件包的方法 - Error: xxx has been disabled because it is not supported

最近在macos上面使用 brew install mariadb@10.3 居然提示 Error: mariadb@10.3 has been disabled because it is not supported upstream!查阅后发现这个版本官方于2024年5月停止维护,所以在brew安装时就提示了不受支持的异常。

2024-08-11 11:30:24 848

原创 macos brew安装的mariadb@10.11启动异常 mysqld_safe A mysqld process already exists 解决方法

最近在macos中通过brew install mariadb@10.11 安装后, 在通过 brew services restart mariadb@10.11 重启居然报异常。注意这个异常日志在所有系统中都是一样的,他位于datadir数据库文件存放目录下 名称为 机器名.err。这个异常日志对于排查mysql/mariadb的启动异常是至关重要的, 通过查看这个日志即可获取所有的相关异常信息。如下示例通过这个xx.err 异常日志文件,我们看到了导致这个文件的根源是没有正常关闭。

2024-08-11 10:34:40 229

原创 macos重装系统 启动U盘制作方法 - createinstallmedia 命令使用方法总结

macos重装系统比windows要稍微复杂一些,不过还好,macos系统安装app这个Apple官方提供的系统软件里面默认就内置了一个可用为我们我们下载的apple安装镜像要门是 dmg/pkg/iso 的压缩档案格式的,要么是 xxx.app的安装文件,不管是那种格式,最后解压后都可以得到一个 macOS xxx.app 的安装文件, 我们需要的这个启动盘制作工具就在这个app文件里面。路径为:“Install\ macOS\.app/

2024-08-10 07:56:42 1131

原创 macos brew mariadb/mysql 自定义数据库存放路径datadir ,工作目录WorkingDirectory , .bash_profile 的配置和使用

在macos系统中,我们可以通过brew 非常方便的安装和管理mariadb/mysql数据库, 安装后数据库文件的默认存储路径即配置中的datadir 路径默认为/usr/local/var/mysql 。 默认的my.cnf配置文件路径为/usr/local/etc/my.cnf 这个文件中使用了目录包含语句!includedir /usr/local/etc/my.cnf.d , 他会将/usr/local/etc/my.cnf.d 目录中的所有配置文件加载为mysql的配置文件。

2024-08-09 22:02:10 559

原创 golang 条件语句中有多条件时多条件的执行顺序和执行效率问题总结 -- if else条件语句 多条件时执行顺序为从左到右

在golang的 条件语句中有多个执行条件时,go的执行顺序为从左到右依次执行, 如果多个条件是 && 条件与的关系,则执行条件的顺序就与程序的效率密切相关,

2024-08-09 19:58:36 299

原创 mariadb/mysql数据库升级后操作异常1728 - Cannot load from mysql.proc. The table is probably corrupted 解决方法

mariadb/mysql数据库升级后操作异常1728 - Cannot load from mysql.proc. The table is probably corrupted 解决方法

2024-08-09 17:40:52 394

原创 golang for range time.Ticker 和 time.Timer时间通道使用示例 - 每隔指定时间执行一次,执行指定时长后退出执行

golang中的 ticker和timer时间通道除了可以使用for select case语句来执行外, 还可以使用 for range语句来执行ticker或者timer时间通道。

2024-08-09 16:17:44 363

原创 golang for select { case } 语句 time.Ticker每隔指定时间间隔就执行一次;time.Timer在指定的时间之后执行一次,Ticker和Timer的区别和用法总结

golang中我们如果要创建一个每隔一段时间就执行一次的逻辑就使用 time.NewTicker 创建时间断续器, 如果我们希望在指定时间之后只执行一次就使用 time.NewTimer 创建一个定时器。 select语句的作用是在多个通道中选择一个可用的通道执行,他最少需要有2个以上的通道, 且每隔case语句后面必须跟的是io操作, 同时select语句会阻塞当前进程直到其中的一个通道可用。

2024-08-08 17:25:58 291

原创 gin框架 自定义404错误页面,自定义500等服务端异常,业务异常,根据不同异常类型显示不同的异常页面方法 整理

gin框架中的自定义异常页面实际上就是一个路由绑定和异常捕获和异常类型断言的过程,其中404异常他就是一个无路由异常,需要使用路由对象的NoRoute方法绑定对应的异常处理函数, 其他类型的异常需要使用 中间件 +defer + recover()的方式来处理不同类型的异常。 在gin 框架中还有一个NoMethod的路由异常,这个异常在Engine.HandleMethodNotAllowed = true时触发,使用方法和NoRoute一样,绑定一个HandlerFunc函数即可。

2024-08-08 07:00:00 1411

原创 gin框架路由处理方法Handle,中间件,9种请求方式(GET, POST, PUT,DELETE... CONNECT, TRACE)使用方法,gin路由接口IRoutes解析

gin框架的路由支持GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, CONNECT, TRACE这9种请求方式, 请求方式名称必须是大写, 这9种请求方式在gin内部都是通过handle方法来处理, gin框架中的路由处理函数和中间件的定义实际上就是定义一个入参类型为*gin.Context 的函数或者方法。 gin在中间件中通过调用 gin.Context对象中的.Next()方法来继续处理后续请求,通过调用 .Abort() 方法来中断后续请求,通过使用r

2024-08-07 18:02:17 753

原创 用于gin框架的CORS中间件,解决身份凭证和通配符不能同时设置问题,可同时配置附带身份凭证的请求和*通配符,chrome插件CORS跨域请求通配符

用于gin框架的CORS中间件(当然,用在其他的框架和语言中相应的Header头设置和配置信息和应用原理都是一样的),解决Access-Control-Allow-Credentialstrue身份凭证和 Access-Control-Allow-Origin: | * 通配符不能同时设置问题,可同时配置附带身份凭证的请求和*通配符,以及在chrome插件中访问远程CORS跨域请求通配符问题等

2024-08-07 12:17:28 550

原创 golang中的星号*通配符字符串模式匹配 和问号? 通配符字符串模式匹配的2种实现方法 和相关的单元测试用例

在go语言中,我们如果需要对字符串进行星号* 或者问号? 模式匹配, 可以有2种方法实现通配符 * 问号 ? 匹配, 找出给定的输入字符串str是否与pattern字符串模式相匹配。

2024-08-07 11:44:33 903

原创 http跨域网络请求中的CORS(跨源资源共享) 那些事 -- HTTP跨域请求, chrome插件跨域请求使用详解, origin格式,origin通配符等

本文详细讲解了什么是CORS,以及如何使用CORS,包含如何在服务端相应请求中设置CORS的相关请求头,以及origin的格式,通配符,http跨域请求, chrome插件跨域请求的详细设置方法等。

2024-08-07 11:15:43 1651

原创 golang判断某个文件内容是否是二进制文件方法, LimitReader, 获取文件大小,字符串0写入后的byte数据为48, byte零值

go语言中判断某个文件是否是二进制文件的方法, 通过LimitReader读取指定大小的数据后对数据进行判断, 这里有一个很有趣的知识点就是十六进制 0x30。

2024-08-06 13:32:41 287

原创 golang下载、上传文件MD5高效计算方法,利用io.TeeReader函数特性 实时计算文件md5签名

在go语言的开发中,当我们在操作下载或者上传文件对象时, 我们可以利用golang内置的io包中的 TeeReader函数特性,高效实时计算文件的md5值。 方法如下......

2024-08-06 10:31:49 414

原创 golang命名异常 error var Xxx should have name of the form ErrFoo (ST1012) 解决方法

异常原因分析:这个提示通常发生在我们使用var 定义一个变量来接收 error异常信息时的变量名称不规范所致。其实这里的异常信息“error var Xxx should have name of the form ErrFoo (ST1012)” 这个提示里面也已经提醒了" 变量 Xxx 的名称格式应该为 ErrFoo ", 即提醒你变量Xxx的名称应该是 ErrXxx 。

2024-08-04 09:49:31 269

原创 golang转换时间对象,时间字符串,时间戳到自定的时间字符串方法, 支持时间对象、秒/毫秒时间戳,时间字符串转换为统一的时间字符串

转换时间对象,时间字符串,时间戳到自定的时间字符串方法, 支持时间对象、秒/毫秒时间戳,时间字符串转换为统一的时间字符串。

2024-08-03 21:24:43 301

原创 golang 转换时间戳到字符串函数 支持秒和毫秒时间戳 转换到自定字符串

ps: 如果希望返回的时间字符串为默认的格式 time.RFC3339 即 "2006-01-02T15:04:05Z07:00" , 则第二个参数直接传递空字符串即可,即: TsToStr(1722657237,"")使用 strutils.TsToStr(1722683285997,"") // 输出 "2024-08-03T19:08:05+08:00"

2024-08-03 20:12:27 313

原创 go pkg包名,如何在pkg.go.dev发布golang软件包, package包名, import包名, git库名, go.mod module模块名称 区别与使用总结

golang的包名在不同的地方作用不同,用途不同。 在我们通过pkg.go.dev发布自己的包的时候,了解这些包名和他们的用途就很有必要了。 下面我们以go语言中的pkg库 github.com/tekintian/strutils为例说明各种名称的区别和用途。要在pkg.go.dev发布自己的软件包,首先需要创建一个git仓库,然后通过 https://pkg.go.dev/{go软件包仓库地址} 访问后根据提示即可将你的软件包提交到golang的pkg公共仓库。 示例: 将git仓库https://gi

2024-08-03 15:51:27 1184

原创 gin框架中断当前网络请求代码执行的 2种方法总结 - panic, Abort() , return

在go语言的开发中,我们要中断当前代码执行 可以使用 return 语句来中断当前代码的执行。 return 语句中断的是当前函数的代码执行。 在gin框架中,如果要中断当前的网络请求,有2种方法。

2024-07-30 17:58:46 296

原创 GORM 软删除 使用详解

在gorm这个ORM框架中,默认情况下,只要我们的表中包含了字段 deleted_at , 模型中包含的字段类型为那么这个情况下我们的模型就拥有了软删除功能。当调用Delete时,GORM并不会从数据库中删除该记录,而是将该记录的DeleteAt设置为当前时间,而后的一般查询方法将无法查找到此条记录。如果你并不想嵌套gorm.Model,你也可以像下方例子那样开启软删除特性:Deleted。

2024-07-25 21:55:24 332

原创 golang语言 .go文件版本条件编译,xxx.go文件指定go的编译版本必须大于等于xxx才生效的方法, 同一个项目多个go版本文件共存方法

在go语言中,我们不关是可以在编译时指定版本, 在我们的xxx.go文件中也可以指定go的运行版本,即 忽略go.mod中的版本,而是当当前的go运行版本达到指定条件后才生效的xxx.go文件。方法如下: 我们通过在xxx.go文件的头部增加以下代码即可。

2024-07-23 19:33:45 837

原创 一文帮你搞懂golang中的类型判断 x.(type) + switch case 和 反射中的switch 加 rv.Kind类型case reflect.Xxx的用法和区别

在golang中,我们可以通过(type)加的形式来对一个any类型的变量进行类型的判断和处理。这里的 x代表的是你要进行类型判断的any类型的变量,(type)和这个语法模式长得相似的有, 不过他们的用法和结果可完全不一样哦,大家要分清楚了。废话不多说,直接上示例。

2024-07-23 10:09:12 246

原创 golang中如何判断某个interface{}对象是否拥有指定的方法, 判断某个any对象是否实现了指定的接口interface 的方法

判断any对象是否拥有指定的方法在go语言里面,判断某个any对象是否拥有指定的方法 可以有2种途径:一是通过反射方式直接判断是否拥有指定的方法; 另外一种途径就是自己定义一个接口,然后将要判断的方法放到自定义的接口中,然后使用断言判断对象是否实现了指定的接口,这个有点绕,不过效率要搞一些!

2024-07-23 09:40:19 568

原创 js axios 网络请求参数中的 params 和 data 的区别 图示

前端开发中,我们常用的是axios这个网络请求库来发送我们的网络请求, 在axios中,params和data是有区别的,他们分别应对的是不同的使用场景。axios会将所有的请求数据附加到请求的url地址中,有请求数据长度的限制。一般用于GET请求。应用场景: 且请求参数不多,数据流很小的情况下,一般情况和GET配合使用。同时由于请求参数都暴露在了url里面,所以有安全风险,仅适用于非敏感数据的发送。如: 我们在params参数中发送一个ids数组类型的请求参数,则最后会生成类似这样的URL请求地址: /a

2024-07-22 17:04:22 515

原创 golang 字符编码 gbk/gb2312 utf8编码相互转换,判断字符是否gbk编码函数, 字符编码转换基础原理解析, golang默认编码utf8

虽然golang里面的默认编码都是统一的unicode utf8编码, 但是我们在调用外部系统提供的api时,就可能会遇到别人的接口提供的编码非 utf8编码,而是gbk/gb2312编码, 这时候我们就必须要将别人的gbk编码转换为go语言里面的默认编码utf8。GB2312编码的范围: 十进制 => 高位字节:161 - 247, 十六进制:0xA1 - 0xF7;低位字节:161 - 254 , 十六进制:0xA1 - 0xFE。

2024-07-22 12:30:30 802

k2p MT7621A适用的智能路由器OpenWrt 23.05.2最新版刷机固件

结果测试可用的K2P路由器 MT7621A 智能路由器OpenWrt 23.05.2官方最新纯净安全版刷机固件, openwrt-23.05.2-ramips-mt7621-phicomm_k2p-initramfs-kernel.bin 内核恢复固件和openwrt-23.05.2-ramips-mt7621-phicomm_k2p-squashfs-sysupgrade.bin K2P路由器升级固件, 刷机方法见 https://blog.csdn.net/tekin_cn/article/details/135484994

2024-01-09

macos中使用的Burpsuite Pro 2023.12.1 中提取的JAVA运行时 jre 20.0.2

最新版本的Burpsuite Pro 2023.12的JAVA运行时 jre 20.0.2 , 下载后解压即可使用

2023-12-22

Icu4c 73 brew自定义版本安装源

Icu4c 73 brew自定义版本安装源 # 使用方法: # 1. 直接指定rb文件安装: brew install icu4c@73.rb # 2. 将icu4c@73.rb文件放到brew的默认Formula路径 然后执行 brew install icu4c@73 # 路径:/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/icu4c@73.rb # # 注意下面的class名称,Icu4c 驼峰命名的要安装的软件名称 Icu4c, # 后面的 AT 即 @ (@转换为slug命名即 AT)加大版本号 73 注意不能有特殊符号

2023-09-11

mac_osx_1.6.0.jdk.7z

JDK-1.6.0 MAC OSX 苹果系统下用的jdk1.6, 从DMG中提取出来的,直接解压后就可以使用

2021-04-20

QT-Multi-language-dymantic-toggle.7z

QT c++简体中文 英文多语言动态切换源码,完整版本

2021-03-06

Axure RP元件库大全-上千个axure元件库-史上最全.7z

本人收集的目前为止最全,最多的axure高保真 交互元件库,有好几千个元件,有高保真交互的,也有图标或者不带交互的各式各样的axure元件, 分享给有需要的人或者准备学习 axure的人! 如果你有更好的axure资源么记得也给我分享一份 :)

2019-06-25

tower pro 3.2.0 MAC 特别版

Mac 苹果系统下面的GIT图形化管理工具,tower pro 3.2.0最新破解特别版

2018-11-20

RedisDesktopManager Win 0.9.8.1156 redis的可视化管理工具

最新官方windows 版本的 RedisDesktopManager Win 0.9.8.1156 , 有需要的下载, redis的可视化管理工具

2018-11-06

ECShop_patch_20170921.zip ECSHOP 3.6最新版升级补丁

ECShop_patch_20170921.zip ECSHOP 3.6最新版升级补丁

2018-04-15

myeclipse2017 和谐补丁 + 闪退补丁 mac win系统通用

最新版本myeclipse2017 stable 1.0 和谐补丁 + 闪退补丁 mac win系统通用

2017-12-26

最新医疗器械分类目录(306) 2017年12月官方最新数据

国家食品药品监督管理总局同步获取的医疗器械分类目录中的所有内容数据,2017年12月最新的全部医疗器械分类数据

2017-11-29

JDK9_API Javadoc帮助文档 CHM JAVA9开发手册

最新版本 JDK9 API Javadoc 帮助文档 CHM JAVA9开发手册

2017-11-25

你有必要知道的 25 个 JavaScript 面试题

你有必要知道的 25 个 JavaScript 面试题 中英文 JS题库

2017-02-23

CI辅助函数 PHP自动获取用户地理位置信息的函数 支持淘宝, 新浪等多个IP数据库

CI辅助函数 PHP自动获取用户地理位置信息的函数 支持淘宝, 新浪等多个IP数据库 PHP 获取用户地理位置 CI 辅助函数 get userip, ip location helper for CI, Support ci2, ci3, and ci4 PHP获取用户真实IP地址, 地理位置的辅助函数. 支持查询 淘宝, 新浪, pconline IP数据库信息, 可以随意却换. 完全松耦合, 可用于CI,也可以用于其他任何的PHP系统中, 直接将 ip_helper.php 文件拷贝到你的系统中, 加载后即可使用 , 使用方法同CI如下 使用方法 将 ip_helper.php 下载后放到CI的 application 目录中的 helpers文件夹 , 如 application\helpers\ip_helper.php 设置CI按需自动加载本辅助函数, 打开 application\config\autoload.php 文件, 在 $autoload['helper'] 这个数组里面增加 ip_helper.php辅助函数的加载, 注意,只需要添加 _helper.php 前面的文件名即可, 如 ip ,即表示加载 ip_helper.php, 如果有多个辅助函数需要加载的话,直接真加一个数组值即可, 如: $autoload['helper'] = array('ip','myhelper1','myhelper2'); /* | ------------------------------------------------------------------- | Auto-load Helper Files | ------------------------------------------------------------------- | Prototype: | | $autoload['helper'] = array('url', 'file'); */ $autoload['helper'] = array('ip'); 调用方法 加载后再任意视图,控制器和模型里面可以直接使用, 调用方式如下 getIpLocation() 不传API服务商,将默认调用淘宝API 调用淘宝API查询IP地理位置 <?php echo getIpLocation('taobao'); ?> 调用新浪API查询IP地理位置 <?php echo getIpLocation('sina'); ?> 调用pconline API查询IP地理位置 <?php echo getIpLocation('pconline'); ?>

2016-09-25

CodeIgniter 3中文手册 --CI 3.0 官方简体中文版用户手册.chm

CodeIgniter 3中文手册 --CI 3.0 官方简体中文版用户手册.chm 基于最新 2016-09-14. 官方简体中文手册制作, 由于官方没有提供 chm版本的手册, 使用很不方便,所有自己制作了本 CHM ci手册. 免费分享给大家!

2016-09-25

ThinkPHP5.0 php7 Auth权限认证管理模块

ThinkPHP5.0 php7 Auth权限认证管理模块 , 目前还没有人发THINKPHP5.0用的这个权限认证模块, 自己改造的thinkphp3.2里面用的auth授权验证模块为TP5.0 php7能用的模块, 免费分享给大家 如果你也改造了次代码么记得给我也分享一份 QQ932256355

2016-04-06

eAccelerator for windows php 5.3.XX VC9 PHP加速模块下载

eAccelerator for windows php v5.3.XX VC9 PHP加速模块下载, 这个东西是目前PHP加速最好用的缓存模块了, 这个是windows平台下使用的已经编译好的eAccelerator.dll 文件, TS 和NTS 2个版本.

2015-07-10

ModSecurity Handbook使用手册

ModSecurity Handbook使用手册 英文原版的哦,免费奉献给大家 Modsecurity for Apache 用户手册 介绍 Modsecurity 是一个开放原代码的入侵检测和防护引擎,用来保护Web应用程序.他同样和可以当作一个Web应用程序防火墙.它嵌入到Web服务器中,担当一个强大的保护伞-保护来自应用程序的攻击. ModSecurity 和web服务器结合,增强web服务器抗攻击的能力.一些只得关注的功能说明: l 过滤请求:在web服务器或者其他模块获得handled之前, 按照原来的样子分析进入的请求.(严格的说,在这种嵌入式的操作里面,有一些操作在没有到达ModSecurity之前不可避免的进行了一些操作.) l Anti-evasion 技术: paths and parameters are normalised before analysis takes place in order to fight evasion techniques. l 了解HTTP协议:引擎获得了http的协议后,将进行非常详细的颗粒过滤.例如,它可以查看任何一个单独的参数,或者是制定的cookie值. l POST 有效负载分析:这个引擎能够截取传送的内容使用POST方法. l 审计记录:能够详细的记录每一个请求(包括POST)可以被用在法律分析上. l HTTPS 过滤:当这个引擎被嵌入到web服务器中后,可以有权访问解密后的数据请求. l 过滤被压缩的内容:和上面一样,安全引擎可以有权访问到被解压缩后的内容. ModSecurity 能够被用于发现攻击,或者是发现和阻止攻击.

2015-07-10

grepWinPortable 非常强大的文件字符查找替换工具 支持正则

grepWinPortable 非常强大的文件字符查找替换工具 支持正则表达式搜索替换

2015-05-25

codecanyon_super-ajax-contact-form PHP超级邮件联系表单

商业版本的PHP超级邮件联系表单 codecanyon_super-ajax-contact-form 比较漂亮,而且功能强大的在线邮件联系表单,支持smtp , php mail函数发送邮件, 有需要的朋友拿走!

2015-04-19

支持PHP5.2的phpMyAdmin 官方最终版

支持PHP5.2的phpMyAdmin 官方最终版, 4.0 以上的其他版本已经不再支持PHP5.2了,保存留个纪念吧!

2015-01-05

zendguard6.0 path

zendguard6.0 官方最新版本的path, Just for test!

2015-01-05

php-encoder.zip PHP代码加密工具

国外获取的一个PHP代码加密工具,喜欢的拿去吧! php-encoder.zip PHP代码加密工具

2015-01-05

安卓ROM system.img 解包与打包工具unyaffs mkyaffs2image

linux下的system.img解压和打包工具 解包 unyaffs system.img 打包,system为system.img解包后的目录 mkyaffs2image system?system.img By Tekin

2014-12-02

Magic Zoom Plus v4.5.28 图片放大镜去水印破解 学习版

Magic Zoom Plus v4.5.28 图片放大镜去水印破解 学习版 声明: 仅供学习研究之用,如果喜欢请购买正版,谢谢!

2014-05-07

1200元的SEO电子书教程内容.doc

1200元的SEO电子书教程内容 第一课:什么是Google排名技术 经过我多年的实践和研究 在我们常用的几十种网络推广方法中 Google搜索引擎排名是最有效的一种 因为: 1. Google是世界上用户最多的搜索引擎; 2. 通过搜索引擎来的客流质量非常高 大部分都是你的潜在客户; 3. 一旦在Google上获得了好的排名以后 它每天都会源源不断的给你带来客户; 4. 只有你学习会了Google排名技术 它免费给你工作 而且效果比你出钱找10个业务员都好; 5. 利用Google排名技术 以它为基础 开展多种低成本 无风险的赚钱项目 大家都知道 Google的左侧的排名与其他搜索引擎左侧的排名不同 其他的搜索引擎 你出钱就可以买到好的排名 而对于Google搜索引擎而言 你出 钱只能买到它左侧的赞助商广告位 无法买到左侧的排名 因为Google的左侧排名是根据它自己独特的算法自然排出来的结果 Google追求的是给用户 高质量的搜索结果 由于Google左侧排名营销效果非常好 商业价值非常大 于是就有专门的人从事Google等搜索引擎的排名技术研究 这种职业简称为 SEO SEO是英文search engine optimization的缩写 其中文意思是搜索引擎优化 而从事这方面工作的就是search engine optimizer 搜索引擎优化师 搜索引擎优化师使网站在Google中排名提高的技术就是Google排名技术 本书主要就是教大家学习这种技术和如何利用这种技术赚钱的 第二课:利用Google排名技术赚钱模式之一">1200元的SEO电子书教程内容 第一课:什么是Google排名技术 经过我多年的实践和研究 在我们常用的几十种网络推广方法中 Google搜索引擎排名是最有效的一种 因为: 1. Google是世界上用户最多的搜索引擎; 2. 通过搜索引 [更多]

2014-05-05

史上最详细的VLAN图文详解 chm电子书

史上最详细的VLAN图文详解电子书,图文并茂,通俗易懂,看完这个电子书,你就是Vlan方面的专家了

2014-05-05

大型网站架构演变和知识体系.pdf

大型网站架构演变和知识体系 之前也有一些介绍大型网站架构演变的文章,例如LiveJournal 的、ebay 的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有 很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为 什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中 将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程 和所需掌握的知识体系,希望能给想从事互联网行业的同学一点初步的概念,文 中的不对之处也请各位多给点建议,让本文真正起到抛砖引玉的效果 免费网站建设http://chuangxin.biz 成功论坛 http://bbs.chuangxin.biz

2011-11-28

百度影音服务端 视频服务器V1.0.2.23 最新版

百度影音服务端 视频服务器V1.0.2.23 最新版, 全能的P2P视频服务端软件, 可发布RM, RMVB, FLV, AVI,MKV等常见视频文件.

2011-10-23

alibaba.com new PHP clone 英文版阿里巴巴克隆 PHP完整版源码

alibaba.com new PHP clone 英文版阿里巴巴克隆 PHP完整版源码 英文版本的, 老外拿出来卖USD, 这里免费拿来大家学习学习。

2010-03-23

CuteFTP 8.3 Professional简体中文纯录色注册版

CuteFTP 8.3 Professional简体中文纯录色注册版 解压密码:bbs.tekin.cn 成功论坛,成功的摇篮! http://bbs.tekin.cn

2008-10-12

Trados 7.0~7.5 License文件

Trados 7.0~7.5 License文件软件说明:Trados License文件适用于Trados 7.0~7.5

2008-04-02

ASP PHP在线解压工具

WebFiles Installer Maker<br>网页安装包制作软件<br>2005-4-21更新:<br>支持生成 php ,asp 两种语言的安装脚本。<br>php 要求对目录要有读写的权限。<br><br>它可以将指定目录下的所有文件包含子目录打包成单个包裹文件和setup.asp文件。<br><br>有什么用?<br>如果你要上传大量小文件到Web服务器上尤其是一些小的图片文件.<br>(我就经常遇到个别特小的图像文件无法上传的问题,不知道是不是ServU的问题)<br>你就可用这个软件把它们打包,然后上传包裹文件和setup。asp到服务器。再在执行setup。asp。打包的文件即会按照原来的目录结构自动解开。<br>完了之后删除这两个文件就OK。<br><br>***********************asp******************<br>因为是asp的安装文件,所以要求服务器支持asp。<br>需要支持adodb.stream组件。<br>如果支持 fso 则更佳。<br>***********************asp******************<br>php 要求对目录要有读写的权限。<br><br>使用方法:<br>如你要上传一bbs系统到Web服务器上。<br>运行本软件<br>选择要打包的目录 如:e:\webroot\bbs<br>选择保存包裹名 如:e:\bbs.dat<br><br>点击 Make 按钮 ,会生成两个文件<br>e:\bbs.dat, e:\bbs.asp<br><br>把这两个文件上传到Web服务器的bbs目录中,<br>执行Setup。asp,文件就安原来的结构自动在bbs目录中展开了。<br><br>更多精彩 http://bbs.tekin.cn<br>

2008-02-19

IIS6+JSP配置工具

isapi_redirect.dll<br><br>mod_jk_2.0.47.dll<br><br>Jakarta Isapi Redirector 2.04.exe<br><br>isapi_redirect-1.2.8.exe<br><br>解压密码: bbs.tekin.cn

2007-12-28

IIS+php+Zend+MySQL.doc配置教材

IIS+php+Zend+MySQL.doc配置教材

2007-12-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除