25

codeigniter项目核心类实例

创建核心系统类

每次 CodeIgniter 运行时,都有一些基础类伴随着核心框架自动的被初始化。但你也可以使用你自己类来替代这些核心类或者扩展这些核心类。

大多数用户一般不会有这种需求,但对于那些想较大幅度的改变 CodeIgniter 的人来说,我们依然提供了替换和扩展核心类的选择。

注解

改变系统核心类会产生很大影响,所以在你做之前必须清楚地知道自己正在做什么。

系统类清单

以下是系统核心文件的清单,它们在每次 CodeIgniter 启动时被调用:

  • Benchmark
  • Config
  • Controller
  • Exceptions
  • Hooks
  • Input
  • Language
  • Loader
  • Log
  • Output
  • Router
  • Security
  • URI
  • Utf8

替换核心类

要使用你自己的系统类替换默认的系统类只需简单的将你自己的文件放入目录 application/core 下:

如果这个目录不存在,你可以创建一个。

任何一个和上面清单中同名的文件将被替换成核心类。

要注意的是,你的类名必须以 CI 开头,例如,你的文件是 Input.php,那么类应该命名为:

扩展核心类

如果你只是想往现有类中添加一些功能,例如增加一两个方法,这时替换整个类感觉就有点杀鸡用牛刀了。在这种情况下,最好是使用扩展类的方法。扩展一个类和替换一个类的做法几乎是一样的,除了要注意以下几点:

  • 你定义的类必须继承自父类。
  • 你的类名和文件名必须以 MY_ 开头。(这是可配置的,见下文) Continue reading
25

CI框架目录结构分析

 

2013050900240734

 

17

织梦结合小程序的方法及插件安装

最近发现有很多朋友来到我的某篇文章中找“织梦结合小程序”的方法,但是我那篇文章不是关于这个问题的记录,所以在这里做一个织梦结合小程序的方法的外部链接吧,

织梦CMS万能API插件

这里有详细的文字和视频介绍,如果看不明白,他可联系作者,如果还是不明白可以联系我,一同研究。

25

解决phpStudy错误提示“Starting the ‘Apache2a’ service The ‘Apache2a’ service is running.”

/phpStudy/Apache/logs/error.log

解决方法:安装VC9(x86)、VC11(x86)

下载链接:https://pan.baidu.com/s/1gyLabTPKvojdB-jvzxiNxA 密码:27sy

20

windows 2003 iis服务器支持视频播放,支持FLV,f4v,mp4视频播放

windows 2003 iis服务器支持视频播放,支持FLV,f4v,mp4视频播放
服务器不能播放视频,服务器不能播放mp4视频
网站不能播放视频,网站不能播放mp4视频

1.找到你需要设置的网站项目,右键属性,选择“http头”标签;

2.点击“MIME类型”;

3.新建
f4v格式是扩展名:.f4v,内容类型:application/octet-stream
flv格式是关联扩展名:.flv,内容类型:application/octet-stream
mp4格式是扩展名:.mp4,内容类型:video/mp4

TIM20180520072320

10

wdcp3.2.21配置https失败的解决方法

最近在做微信小程序,使用它们的免费服务器,上传文件感觉很不顺手,因为在修改后端代码时,有时可能会频繁上传,这样用它们的服务器就不爽了。所以需要自己配置个测试环境,必须使用https协议。那么就自己下手开弄吧,结果在配置证书后,使用HTTPS怎么弄也是不能正常访问,但还好,哥是无敌的,现在已经完美解决,记录如下:

基本环境:

阿里云服务器
CentOS系统(Linux)
wdCP服务器管理系统(v3.2.21)
阿里云申请的免费证书(Symantec 免费版 SSL)
WEB服务器(Nginx+Apache)

配置步骤如下: Continue reading

30

解决微信小程序报错:Do not have getUserInfo handler in current page: pages/index/index…

如果是来找织梦结合小程序的朋友请移步“织梦结合小程序的方法”,如果是想解决标题中提到的问题请向下看。

Do not have getUserInfo handler in current page: pages/index/index. Please make sure that getUserInfo handler has been defined in pages/index/index, or pages/index/index has been added into app.json

放了好几周才又开始做的微信小程序,之前在页面中做了一些代码测试,隔了这么长时间了,也不记得都动了哪里。

涉及到制作交互部分了,打开了默认的获取用户信息的代码的注释,点击后,报错,报文如上。index.js中、app.js中、…有一些小改,但是都不是真正的原因。

百度上查查吧,但查到的内容也是过来人犯过的错,在这里也记录一下,我也出现了这些提到的。

1. 检查报错对应js在Page之外是不是var了一些不对的值,如:  var RSA = require(‘../utils/wx_rsa.js’);

2.调整app.json中Pages里面的页面注册顺序 ;

3.检查wxml中bindtap是否在js里面将方法创建。

上面第1条是我存在的问题,我在app.js文件中的app({……})之个引用了文件const cfg = require('./config');而且在./config.js文件中还有var的定义,改为let后,没有解决我的问题(但是这不代表不能解决别人的问题)。

再说一下上面的第2条,有个朋友是通过修改app.json中的pages下定义路由的顺序修改了BUG,他的原话如下:

位置调换到后面的 “pages/personal/personal  页面 ,.js 文件中 没有使用Page() 函数注册页面,导致后续页面注册被中断了

测试了一下,把某模块中的js文件清空,控制台提示内容如下:

pages/regulation/regulation.js 出现脚本错误或者未正确调用 Page()

估计那位朋友也不是撒谎,也许是还有别的情况不同的关系吧。

下面说一下这次(pages/index/index.js文件中)我认为很严重的直接造成上面报错的一堆错误:

在上面“…111…”中,有很多代码,但都是事件处理函数等,是不应该在Page.data下的,应该是同级的,Page.data的闭合括号不知道什么时候弄到结尾去的,刚才我是一直没查出来这个错,也是无意间发现的,这个错误比天大啊。

也许是我在上次做测试的时候,复制完代码准备改还没改的情况下放手的,也真是记不清了。

所以,当出现上面出现上面报错时,解决方法还要加上一条,查查自己的代码是否有闭合位置错误的情况发生。

右键点击编辑器区域,选择“格式化文件”,仔细查一查函数的闭合情况。

—————————— 2018-09-05 ——————————

又是一个低级错误,造成这样的报错。

.wxml文件中的部分源码:

报错原因:引号内getUserInfo的后面多了一个空格

买疙瘩,各种错误,不重样儿。

28

三角函数、公式、勾股定理、三角形

一般三角形
b7003af33a87e9500613e51118385343fbf2b442
设三角形三边为AC,BC,AB,

点D垂直于AB,为三角形ABC的高
如图,利用勾股定理,得
AC2-AD2=CD2① CB2-BD2=CD2
①=②
AC2-AD2 =CB2-BD2
因为 AD+BD=AB

所以 AC2-(AB-BD)2=CB2-BD2
同样也有AC2-AD2=CB2-(AB-AD)2
③化简得:(AB2+CB2-AC2)÷2AB=BD
④化简得:(AB2-CB2+AC2)÷2AB=AD

直角三角形

性质1:直角三角形两直角边的平方和等于斜边的平方。
性质2:在直角三角形中,两个锐角互余。
性质3:在直角三角形中,斜边上的中线等于斜边的一半。
性质4:直角三角形的两直角边的乘积等于斜边与斜边上高的乘积。
性质5:如图,Rt△ABC中,∠BAC=90°,AD是斜边BC上的高,则有射影定理如下:

(1) AD^2=BD·DC,
(2) AB^2=BD·BC , 射影定理图
(3) AC^2=CD·BC 。 等积式
(4)AB*AC=AD*BC (可用面积来证明)
(5)直角三角形的外接圆的半径R=1/2BC,
(6)直角三角形的内切圆的半径r=1/2(AB+AC-BC)(公式一);r=AB*AC/(AB+BC+CA)(公式二)
5243fbf2b211931333d4280965380cd790238df0
等腰直角三角形三边之比:1:1:根号二

============================

三角函数公式

sin30°=1/2 sin45°=√2/2 sin60°=√3/2
cos30°=√3/2 cos45°=√2/2 cos60°=1/2
tan30°=√3/3 tan45°=1 tan60°=√3
cot30°=√3 cot45°=1 cot60°=√3/3
sin15°=(√6-√2)/4 sin75°=(√6+√2)/4 cos15°=(√6+√2)/4
cos75°=(√6-√2)/4(这四个可根据sin(45°±30°)=sin45°cos30°±cos45°sin30°得出)
sin18°=(√5-1)/4 (这个值在高中竞赛和自招中会比较有用,即黄金分割的一半)
正弦定理:在△ABC中,a / sinA = b / sin B = c / sin C = 2R (其中,R为△ABC的外接圆的半径。)

三角函数的诱导公式(六公式)
公式一:
sin(α+k*2π)=sinα cos(α+k*2π)=cosα tan(α+k*2π)=tanα
公式二:
sin(π+α) = -sinα cos(π+α) = -cosα tan(π+α)=tanα
公式三:
sin(-α) = -sinα cos(-α) = cosα tan (-α)=-tanα
公式四:
sin(π-α) = sinα cos(π-α) = -cosα tan(π-α) =-tanα
公式五:
sin(π/2-α) = cosα cos(π/2-α) =sinα
由于π/2+α=π-(π/2-α),由公式四和公式五可得
公式六:
sin(π/2+α)= cosα cos(π/2+α) = -sinα sin(π/2+α)= cosα
cos(π/2+α)= -sinα tan(π/2+α)= -cotα cot(π/2+α)= -tanα
sin(π/2-α)= cosα cos(π/2-α)= sinα tan(π/2-α)= cotα
cot(π/2-α)= tanα sin(3π/2+α)= -cosα cos(3π/2+α)= sinα
tan(3π/2+α)= -cotα cot(3π/2+α)= -tanα sin(3π/2-α)= -cosα
cos(3π/2-α)= -sinα tan(3π/2-α)= cotα cot(3π/2-α)= tanα
诱导公式记背诀窍:奇变偶不变,符号看象限。

和(差)角公式
三角和公式
sin(α+β+γ)=sinα·cosβ·cosγ+cosα·sinβ·cosγ+cosα·cosβ·sinγ-sinα·sinβ·sinγ
cos(α+β+γ)=cosα·cosβ·coscγ-osα·sinβ·sinγ-sinα·cosβ·sinγ-sinα·sinβ·cosγ
tan(α+β+γ)=(tanα+tanβ+tanγ-tanα·tanβ·tanγ)/(1-tanα·tanβ-tanβ·tanγ-tanα·tanγ)
(α+β+γ≠π/2+2kπ,α、β、γ≠π/2+2kπ)
积化和差的四个公式
sina*cosb=(sin(a+b)+sin(a-b))/2
cosa*sinb=(sin(a+b)-sin(a-b))/2
cosa*cosb=(cos(a+b)+cos(a-b))/2
sina*sinb=-(cos(a+b)-cos(a-b))/2
和差化积的四个公式:
sinx+siny=2sin((x+y)/2)*cos((x-y)/2)
sinx-siny=2cos((x+y)/2)*sin((x-y)/2)
cosx+cosy=2cos((x+y)/2)*cos((x-y)/2)
cosx-cosy=-2sin((x+y)/2)*sin((x-y)/2)

26

js克隆函数

1、函数预编译过程 this —> window
2、全局作用域里 this —> window
3、obj.func(); func()里面的this指向obj), 可以这样理解,谁调用func,则this就指向谁
4、call/apply 可以改变函数运行时this指向,
(1)、call用法:
func.call(要改变后的this, arg1, arg2, … );
(2)、apply用法:
func.apply(要改变后的this, [arg1, arg2, arg2]);
(3)、apply和call共同点:都是改变this指向
apply和call不同点:传参形式不同,call是将参数一个个传进来,而apply是将所有参数存进一个数组中,然后将该数组传

对象克隆,分为浅克隆和深克隆,而上边的直接赋值的克隆操作为浅克隆,为什么称为浅克隆呢?因为,克隆的和被克隆的对象在克隆操作完成后,指向同一个地址引用,改变其中一个(注意:此处的改变为增加或删除对象的属性,而不是为该对象重新赋值一个对象),另一个也会改变,而深克隆则不会产生此现象。

深克隆/深拷贝代码如下:

Continue reading

25

强烈建议树莓派安装gparted工具进行分区扩容

我弄个树莓派,目的就是为了在另一台电脑中玩linux,总是在VM中弄感觉太没意思了。

但是在树莓派烧写完,开始鼓捣了,才知道,.img文件烧写完好像是才不到7G,确实是很精巧,可惜了我的32G的SD卡啊。

但是最苦的是我后来的各种挂载,一会这里空间不足,一会那里空间不足的,玩起来那是相当的不爽啊。

老长时间没怎么玩了,今天突然又玩了一会,弄得真是心烦。

无意间找到一个图形化工具 gparted,看介绍应该是可以解决我的分区问题的,看着很爽,开始下手了。

系统环境: kali系统,所以不同版本的linux,可能会有区别。

安装gparted

安装是相当的简单,操作起来就要摸索一下了。 Continue reading