自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (6)
  • 收藏
  • 关注

原创 PHP实现CSV文件的创建并且直接下载

<?phpfunction createcsv($fileName,$csv_body){ // 头部标题 $csv_header = array('sku'); $header = implode(',', $csv_header) . PHP_EOL; $content = ''; foreach ($csv_body as $k =>...

2018-04-26 21:07:20 3870

原创 PHP实现单条sql执行多个数据的insert语句

废话不多说 直接上代码<?php/** * Created by PhpStorm. * User: Administrator * Date: 2018/4/21 * Time: 10:41 */header("Content-type: text/html; charset=utf-8");$mysqli = new mysqli('localhost','root','...

2018-04-21 19:56:49 2597 1

原创 PHP反射实现对类的方法依赖注入和构造函数依赖注入

前段时间一直在看tp5 发现他内部实现了控制器的依赖注入。。下面 我通过代码来说明一下是怎么实现的。首先我们准备好几个类文件  我们先看目录安排其中 start.php是启动文件<?php/** * Created by PhpStorm. * User: Administrator * Date: 2018/4/17 * Time: 21:04 */header("Cont...

2018-04-19 21:30:52 2494

原创 Thinkphp5实现加载第三方类库的方法

thinkphp5 很方便的加载我们自己的类库的。但是得严格按照他的规则来。强制我们使用命名空间。今天那么我精细的给大家讲讲该怎么加载。1.首先 我们按照默认的方式进行加载我们在他默认的拓展目录新建文件 如图所示这里我新建一个lib1目录 那么我们的测试类库是Test1.php该文件的代码如下<?php/** * Created by PhpStorm. * User: lenovo...

2018-04-16 18:12:30 9492 2

原创 composer工具实现更新到最新版本

大家的composer一般很久不用  随着时间的推移 可能不是最新了,为了获取最好的使用环境 我们需要保持她最新大家只要执行下面的命令就可以了composer selfupdate效果如图他说我的是1.6.4版本了。执行--rollback就能回到更新之前的版本。...

2018-04-16 09:28:47 18844 1

原创 Thinkphp5.0.18最高效的实现自定义类的自动加载方式

今天看了下,tp5的源码。发现自定义类库的加载方式 是有顺序的。分别是按映射方式 psr4 psr0,其中最高效的,顺序最前的当然是映射方式。我贴出源码,大家看下。private static function findFile($class) { //echo '<pre>';print_r(self::$map); // 类库映射 ...

2018-04-15 23:02:37 2195

原创 安装thinkphp5

安装方式很多  我比较推荐composer安装 并且是安装最新版本的下面我贴出安装命令1.切换到你的web目录2.执行命令 composer create-project topthink/think=5.0.* tp5 --prefer-dist其中的tp5是你web目录项目所在的目录名。可以自己修改。...

2018-04-15 19:54:42 342

原创 实现 PSR-0和PSR-4的类自动加载器并带案例说明

大家在阅读文档 或者使用一些第三方的框架或者软件的时候,都听过或者看过里面要求说实现了psr0或者psr4的规范。我也一直在查资料,找痕迹。现在我的理解是,其实这2个规范就是对类的装载,实现自动寻路径。首先我们看下 PSR0我写代码实现了它的自动加载器这是加载器代码<?php/** * Created by PhpStorm. * User: Administrator * Date...

2018-04-15 18:40:31 780

原创 使用class_exists的注意点我提炼了一下

一次偶然的机会 让我看tp源码的时候 我发现了class_exists的用法  其中有很多的细节需要大家知道。这个函数 大家都知道是判断一个类是否被定义。这是官网的说明 大家用的时候 可能都是这样if(class_exists($class)){ echo 3;}类似这种代码片段第二个参数 大家也知道一下 就是默认真 ,表示是否执行autoload函数,我们一般关闭它。要想让这个函数返...

2018-04-13 21:54:20 4324 2

原创 Thinkphp3.2.3自定义类的多种加载方式

我们在用thinkphp开发的时候 ,免不了要写自己的一些类用来做操作,这也是符合OOP的思想的。那么我们经常纠结于这个类文件放哪比较合适。为什么我new了之后报找不到类。等等一系列无语的问题。下面我给讲讲怎么做才好。。我的建议是,你如果这个类是整个项目都要使用到 ,你就放Vendor目录下 如果是模块使用的话你就放模块的跟目录作为一个组件吧。下面我一一进行介绍。假设我们现在有个php类,这个类的...

2018-04-13 15:47:17 4099

原创 unzip出现目录中文乱码的解决方法

我在解压项目目录的时候,发现了zunzip乱码如然后我们用ftp打开目录查看然后找到资料了用这句unzip -O CP936 xxx.zip然后查看目录ok 搞定。。。

2018-04-13 13:00:25 7868

原创 ORM Active Record 和DataMapper的关系

ORM 是object relationship mapper 俗称对象关系映射。简单点理解就是编程语言里面的对象和关系型数据库的记录产生某种对应关系。产生背景:在编程的世界里  一个类的对象通常是这样<?phpclass One{ private $id; protected $name; //.....}数据库的记录通常是这样这2种肯定数据结构上面有很大的差...

2018-04-12 22:20:42 1139

原创 工作中使用zip命令把项目导到本地

我们工作中常常需要把产线的项目导到本地来测试 开发 排查问题所在,这时候如果项目比较大,单纯的用ftp导下来肯定会很吃力,这时候 我们借助zip命令很轻松的完成事情。比如 我要把/data/htdocs/paself 这个项目导到本地。。那我先进入这个目录cd  /data/htdocs/paself然后执行 zip -q -r paself.zip *   这个时候在当前目录下就会生成pasel...

2018-04-10 16:39:50 296

原创 PHP实现平台商品和京东价格做对比

我们公司最近有个需求 ,经产品部门的反应,说现在我们的商品价格和京东不同步,或者说不合理,要我们技术部的人查出原因。那么很不幸的是,老大把这个任务交给了我。我也没办法 只能硬着头皮上。首先我得到一个sku基础数据,查了一下   有10w多条呢。最初的做法  我贴出代码<?phpset_time_limit(0);error_reporting(E_ALL^E_NOTICE);heade...

2018-04-09 16:04:58 1817 8

原创 一名高级php程序员应具备的专业技能知识

1.熟悉前端开发技术如html,css,javascript,Jquery.2.熟悉php语法,理解php底层内部运行机制。3.熟练使用流行的php框架如thinkphp laravel,yii2等.4.熟练掌握mysql优化,特别是对sql调优和索引有深入的理解和丰富的使用经验。5.熟练掌握面向对象的编程思想和良好的编码习惯。6.熟悉linux系统,会使用常用的linux命令操作,会编写简单的s...

2018-04-08 22:00:10 5444

原创 PHP进行读取CSV文件数据和生成CSV文件

先看读取function read_csv($file){ setlocale(LC_ALL,'zh_CN');//linux系统下生效 $data = null;//返回的文件数据行 if(!is_file($file)&&!file_exists($file)) { die('文件错误'); } $cvs_fil...

2018-04-08 17:45:56 9166

原创 HTTP里面GET和POST的区别

1.get方式是参数是在浏览器的地址栏显示的,不安全 post是放在请求体里面2.get传输数据有限制 最大是1024字节,而post没限制。3.get传输一般用于非敏感数据 post相对对安全性要求高4.get只能url编码 post支持多种编码方式。5.get在浏览器回退是无害的,post会重新提交。。。。。。。。。。。...

2018-04-07 18:50:41 141

原创 Thinkphp3.2.3关于Model类的运行详解

很多人 只知道用M方法去实现数据库的curd。今天我跟大家一起去读源码,去分析它内部是怎么一个运行过程的。。说到Model类 我们肯定先从M方法说起。D方法同理下面开始分析 $str_dsn = 'mysql://root:root@localhost:3306/sql'; $model = M('teacher','',$str_dsn); 在这里我们先调用M方法...

2018-04-07 15:23:50 3141

原创 php实现单例模式辅以调用说明

<?phpclass Sim{ //测试对象的值 private $age = ''; //本类的一个对象 private static $instance = null; //构造函数私有化 防止外部 new private function __construct($age) { $this->age = $...

2018-04-07 10:09:37 232

原创 使用thinkphp制作简易抽奖系统

前端页面<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><a hre

2018-04-06 23:08:35 1715

原创 mysql 忘记密码后 怎么快速恢复

第一步:找到mysql的配置文件win下是 my.ini  linux下是my.cnf第二步 :在配置文件里面加上 skip-grant-tables第三步 :重启mysql服务器第四步:执行以下sql语句mysqlUSE mysql;UPDATE user SET Password = password (新密码) WHERE User = 'root' ;第五步 把配置文件里面的那句配置注...

2018-04-05 13:06:49 254 1

原创 thinkphp3.2.3读取excel文件

准备工作。先准备文件这是2个测试文件再准备excel库文件。在我的博客里面有下载下载后把库文件导入到vendor目录下即可最后贴出代码<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ ...

2018-04-05 10:19:32 2219

原创 常用的一些mysql show status命令汇总

show global/session status like uptime --服务器运行时间单位 秒  默认的级别是session级别  会话级别show global/session status like ‘com_insert’-- 一共执行了多少次插入 【update delete】show global/session status like ‘connections’-- 一共有多...

2018-04-03 22:34:34 751

原创 mysql中varchar(3)和char(3)的异同

相同点INSERT into tab(v,c) VALUES('abcd','abcd');数据库查看结论对于插入值的长度范围,会做长度约束,不能大于他们的本身的长度要求,会做截取的。不同点INSERT into tab(v,c) VALUES('eer','eer');数据库查看这里很多人,开始有误解了,认为char不是当插入值长度不足时会进行空格填充吗,怎么现在是没填充呢,这里我重点解释一下:...

2018-04-03 17:13:20 3494 1

原创 充分理解MyISAM

MyISAM 是mysql 默认的存储引擎。当create新表时 ,不指定存储引擎时,默认使用它。每个MyISAM 在磁盘上存储成三个文件 文件名与表名字相同。拓展名分别是  .frm(存储表定义) .MYD(存储数据) .MYI(存储索引),数据和索引文件可以放置在不同的目录,平均分布IO,获得更快的速度。MyISAM 的特性存储限制:没有实物支持:没有锁机制:表锁B树索引:支持哈希索引:不支持...

2018-04-03 14:36:49 353

原创 怎么通俗易懂的去理解CGI

首先 官方对CGI的解释是这样的CGI:通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口。这句话很抽象 很官方 ,一般人还真没怎么理解的。下面我说一下 听的懂的吧。。首先大家明白几个概念 才能更好的理解CGIWeb 服务器 :指计算机上提供web服务的软件 如 ISS Apache nginx tomcat等。CGI协议:指一种让web服...

2018-04-03 12:53:53 1192

原创 Myisam和InnoDB的比较

Myisam和inonoDb是我们平常用的最多的存储引擎。为了更好的使用它们,我们需要知道它们的区别和使用场景。下面就这两个方面,我说一下。区别:Mysiam 不支持事务机制 InnoDB 是支持的Mysiam 是表级锁 InnoDB是行级锁Mysiam 支持全文索引 InnoDB不支持Mysiam 查询的效率高 增删改的效率低  InnoDB 反之。Mysiam 保存着表的总的行数 而InnoD...

2018-04-02 22:20:50 253 1

原创 浅谈 exists 和 in 的执行原理及使用场景

exists的执行原理:  对外表做loop循环,每次loop循环再对内表(子查询)进行查询,那么因为对内表的查询使用的索引(内表效率高,故可用大表),而外表有多大都需要遍历,不可避免(尽量用小表),故内表大的使用exists,可加快效率;in的执行原理 是把外表和内表做hash连接,先查询内表,再把内表结果与外表匹配,对外表使用索引(外表效率高,可用大表),而内表多大都需要查询,不可避免,故外表...

2018-04-02 13:38:55 3009

mysql优化整理文档

我平时收集的一些资源,大家有空可以下载使用,欢迎大家

2018-04-14

配置说明文件

网上找的 说的很详细,自己保留下来了。方便大家查看。

2018-04-09

phpexcel操作第三方类库

很实用的东西 欢迎下载使用。工作中都会用到的。谢谢使用

2018-04-05

postman插件安装工具包

这个软件包是一个非常实用的工具,一般接口调试都是用到他的。

2018-04-03

CI实现分页的封装

在ci中我们做查询,一般要写2条查询语句,但是我在这里封装了一个方法实现了实现2次调用,方便好用,希望大家采纳。谢谢啦

2015-11-16

自定义分页类

我自己写的一个分页类。方便调用。当我们不想用框架的时候,我们可以自己写,这也是本人的兴趣所在,如果各位网友觉得不太好,欢迎给我意见谢谢。

2015-11-14

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

TA关注的人

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