php
文章平均质量分 69
橘柚子
荆棘中爬行
展开
-
thinkphp 图片上传压缩
项目中需要图片上传功能,自然接下来的问题就是图片压缩的问题,遍寻百度,各种搜索,总是难以找到合适的,能用的。 下面就是我自己根据thinkphp框架的Image.Class.php 类库来写的图片压缩 public function upload() { $upload = new \Think\Upload(); // 实例化上传类原创 2016-09-26 18:15:00 · 2267 阅读 · 2 评论 -
PHP trait的使用
1.一个trait可以供多个类来使用<?php trait Bt{ public function atest(){ echo 'hello '; } public function btest(){ echo 'world'; } public function ab(){ $this->...原创 2019-04-18 16:25:35 · 410 阅读 · 0 评论 -
PHP 对象复制
PHP 对象复制有两种方式,浅拷贝和深拷贝浅拷贝:变量之间是地址传递的,都同时指向一个地址,这个地址上有个值,大家都共享这个值【借用车钥匙】,改变其中任何一个对象的值,其他对象的值也会改变 深拷贝:变量之间是值传递的【复制车钥匙】,对象之间是独立的【1】浅拷贝代码实例,浅拷贝比较节省内存,PHP中对象复制默认是浅拷贝的<?php class A{ public $ag...原创 2019-04-18 17:03:03 · 389 阅读 · 0 评论 -
PHP 类型约束
<?php//类型约束 PHP 5.6语法为例class A{ public $name=""; public function go(){ echo "ggggggo"; }}function test(A $a){ //此处使用类A 作为变量$a的类型约束,必须传入A类型的对象 $a->go();}test('nnnmn...原创 2019-04-18 17:13:26 · 279 阅读 · 0 评论 -
PHP static后期绑定
【1】self<?php class A{ public static function who(){ echo "A who()"; } public static function test(){ self::who(); }}class B extends A{ public static func...原创 2019-04-18 17:39:24 · 135 阅读 · 0 评论 -
PHP函数的传值与传引用的区别
1.函数传值:默认情况下,函数参数通过值传递,所以即使在函数内部改变参数的值,也不会改变函数外部的值。<?phpfunction test($i){ $i+=10; var_dump($i);//12}$m=2;test($m);var_dump($m);//2?>2.函数传引用:可以通过在参数前添加&符号,代表通过引用传递参数,在函数内部...原创 2019-04-18 19:56:57 · 770 阅读 · 0 评论 -
PHP 特殊函数解析
1.可变函数的使用在PHP中如果将“函数名称”赋予字符串类型的变量,但是自使用该变量时,如果带有小括号,那么PHP引擎将解析函数【1】系统函数 $funcName="md5"; echo $funcName('king');//b2086154f101464aab3328ba7e060deb echo md5('king');//b2086154f101464aab3328ba...原创 2019-04-18 23:01:56 · 329 阅读 · 0 评论 -
异步跨域上传从剪贴板上传图片
首先跨域的需求是必须的,由程序架构所决定。关于跨域那最先想到的还是jq的ajax的jsonp,可是jsonp只能使用get的方式,图片数据太大有可能就不稳定。最终决定使用formdata封装file对象,使用XMLHttpRequest对象发送请求数据。为了模拟跨域,分别在本地的两个服务器localhost:80和localhost:8090部署后端和前端的代码前端代码:<...原创 2019-05-22 09:41:19 · 208 阅读 · 0 评论 -
PHP数组操作函数
array_search— 在数组中搜索给定的值,如果成功则返回相应的键名<?php $array = array( 0 => 'blue' , 1 => 'red' , 2 => 'green' , 3 => 'red' ); $key = array_search ( 'green' , $array ); //...原创 2019-06-10 17:07:42 · 1019 阅读 · 0 评论 -
PHP 面向对象—面向对象总概述
1.面向对象编程的基本概念面向就是在编程的时候一直把对象放在心上。 面向对象编程就是在编程的时候数据结构(数据组织方式)都按照对象的结构进行存储 对象的结构就是属性,方法。2. 为什么要使用面向对象对象的描述方式更加贴合真实的世界,有利于大型业务的理解 在程序设计的过程中使用对象的视角分析世界的时候能够拉近程序设计和真实世界的距离3.面向对象的实质面向对象就是把生活中要解决的...原创 2019-07-08 14:22:27 · 174 阅读 · 0 评论 -
PHP面向对象 高级实践(上)
1.访问控制public——都可以访问 protected——只有子类和自身可以访问 private——只有自身可以访问2.继承父类里面定义的类成员,可以不用在子类里面重复定义,节约了编程的时间和代价 同一个父类的子类拥有相同的父类定义的类成员,因此外部代码调用他们的时候可以一视同仁 子类可以修改和调整父类定义的类成员。一旦子类修改了,就按照之类修改后的功能执行。我们称之为重写...原创 2019-07-08 16:12:06 · 165 阅读 · 0 评论 -
PHP面向对象 高级实践(下)
1.接口接口就是把不同的类的共同行为进行了定义,然后在不同的类里面实现了不同的功能 一旦某个类实现了某个接口,那么就必须实现接口定义的方法<?php//interface关键字用于定义接口interface ICanEat{ //接口里面的方法不需要有方法的实现 public function eat($food);}//implements 关键字用...原创 2019-07-08 17:12:44 · 145 阅读 · 0 评论 -
PHP排序算法
目录1.冒泡算法2.快速排序3.选择排序4.插入排序1.冒泡算法<?php //冒泡排序算法(从大到小) function mysort($arr) { //比较的趟数,数组里面的每个元素3,1,2都要进行比较 for($i = 0; $i < count($arr); $i++) { //用于判断每趟...原创 2019-09-02 18:05:12 · 206 阅读 · 0 评论 -
PHP 文件操作
1.用一个函数遍历目录下所有文件【1】使用函数is_dir(): 函数检查指定的文件是否是目录,返回布尔值 scandir(directory): 函数返回指定目录中的文件和目录的数组【2】遍历思路首先接收一个目录名称,然后用scandir扫描,其中会有两个额外的目录是“."和”..“需要去掉 然后遍历扫描后的每个文件是否为目录文件,如果是则在回调到第一步扫描里面的文件【3】实...原创 2019-09-03 11:24:42 · 124 阅读 · 0 评论 -
PHP 查找算法
1.二分查找【1】二分查找的定义二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。【2】二分查找算法的要求必须采用顺序存储结构。 必须按关键字大小有序排列。【3】算法的步骤 其实,二分查找也还是比较容易理解的,大概就是一分为二,然后两边比较,保留有效区间...原创 2019-09-04 09:39:31 · 213 阅读 · 0 评论 -
PHP 类自动加载
1.使用__autoload函数自动加载类//使用__autoload函数自动加载类function __autoload($className){ require $className.'.php';}//实例化类IMooc的时候,发现当前文件并不存在这个类,就会自动到__autoload函数中传入类名$IMooc=new IMooc();var_dump($IMooc)...原创 2019-04-18 14:23:07 · 209 阅读 · 0 评论 -
PHP 命名空间
1.背景test1.php<?phpclass IMooc{}?>test2.php<?phpclass IMooc{ }?>namespace.php中引入上述两个文件test1.php和test2.php,就会报错,声明了相同的类<?phprequire('test1.php');require('test2...原创 2019-04-18 11:07:53 · 135 阅读 · 0 评论 -
PHP 设计模式
1.抽象工厂模式<?php//抽象工厂模式//开闭原则:对类的新增开放,对类的修改关闭。class MySQL{}class Sqlite{}class MyPDO{}//定义一个接口interface Factory{ public static function getDB();}class MySQLFactory implemen...原创 2019-04-17 23:01:51 · 136 阅读 · 0 评论 -
ThinkPHP+Excel 数据导出
根据项目需求,数据库里的数据可以按照搜索条件导出为excel文件。 第一步:在thinkPHP3.2.3框架中引入PHPExcel组件,,一个控制器文件和一个视图文件,PHPExcel和PHPExcel.class.php放入thinkphp的Library/Org/Util/目录下。 如图: 第二步:在控制器中调用excel数据导出的方法 public fu原创 2016-11-10 12:12:17 · 404 阅读 · 0 评论 -
富文本编辑器的应用,以及后台处理
记录一下我以前做的一个富文本编辑器,方便以后使用,也为大家提供一个快捷的方法从前端到后台会为大家详尽代码1.引入相关资源文件 (1)在html头部引入 -->原创 2016-11-12 15:32:43 · 3500 阅读 · 0 评论 -
php使用DES加密方式对图片内容进行加密处理
项目中遇到给第三方同步图片,要求传输图片内容的des加密后转base64格式在进行传输 下面提供了加密解密的代码 function encrypt($input) { $size = mcrypt_get_block_size('des', 'ecb'); $input = $this->pkcs5_pad($input, $size); $原创 2017-01-06 13:54:55 · 1613 阅读 · 1 评论 -
PHP+Ajax+Mysql联合实现省市区三级联动
1.mysql数据文件导入,该文件会上传到我的资源库 dh_areas 2.HTML 请选择 {$vo.area_name} 请选择 请选择 3.ajax var selcityUrl="__APP__/Home/Registe原创 2016-12-30 09:26:36 · 888 阅读 · 1 评论 -
PHP+导出word功能实现
基于项目需求,导出word文件。 此功能实现是基于ThinkPHP框架,需要引入一个原生的php文件word.class.php,将此引入:如图目录之下: 项目名称/Application/Common/Common/word.class.php如图中所示的function.php中任何函数方法,在框架内控制器中都可以直接调用,所以,在function.php中引入word.c原创 2017-02-27 17:20:08 · 980 阅读 · 0 评论 -
前端压缩图片+ajax+php 异步上传
首先要引入lrz.mobile.min.js 这个压缩的文件库,里面啥都不用改,只需引入即可 引入jq文件库HTML:Js:var url_updatePic="__APP__/Home/UserIndex/updatePic";function upload(ObgId,Obg,e){$(".spinner").show();$("#ba原创 2017-04-21 18:09:56 · 1160 阅读 · 0 评论 -
PHP技巧进阶
1.巧用json_encode()给js数组赋值很多时候,我们要把PHP处理后的结果付给js来处理。但是,在给js赋值的时候,单个变量的赋值比较简单且容易实现,只要通过模版标签直接把PHP变量输出即可。例如:PHP:$this->title='I love THINKPHP';JS:<script>var title="{$title}";</script>...原创 2018-02-12 17:05:32 · 230 阅读 · 0 评论 -
Angular Http服务通讯实战
实战对象:股票列表展示和修改表单,前端采用angular,后端采用php第一步:后端代码实现【angular/index.php】:获取数据<?php header("Access-Control-Allow-Origin: *");header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type,...原创 2018-05-09 14:57:48 · 1025 阅读 · 1 评论 -
Angular 第九章 构建和部署
1.构建:编译和合并 命令【ng build】生成的文件夹dist【1】编译,将typescript编译为javascript【2】合并,2.部署:与服务器整合dist里面的文件夹放到apache环境下的目录【www/angular/client】下面并修改加载静态资源路径在【www/angular/client/index.html】 <base href="/angular/clien...原创 2018-05-09 17:02:14 · 219 阅读 · 2 评论 -
PHP 基础功能函数积累
1.某个字符串是否以某个字符开头private function startwith($str,$pattern) { if(strpos($str,$pattern) === 0) return true; else return false;}2.一个字符串中是否包含另一个字符private function conta...原创 2018-08-08 10:44:17 · 192 阅读 · 0 评论 -
多层select联动插件
var selIndex = 0;var arr = [];//(1)每次点击select时候,selIndex都加1,且push到数组arr//(2) 循环数组arr,需要将当前点击select【cureentIndex】之后所有的select移除,移除之后在继续重新请求,添加下级function getGroupList(fatherId, selIndexStr) { if...原创 2018-01-24 17:18:39 · 503 阅读 · 0 评论 -
微信小程序多级联动实现
本节将继续讲述小程序picker控件的使用,上篇讲述的是单级下拉列表,本次讲述的是多级下拉列表小程序实现联动下拉列表,为实现联动润滑的效果,需要将联动用到的所有数据请求到,然后再逻辑处理这些数据,避免选中上一级,下一级结果出现迟缓卡顿的现象第一步,小程序端向后端php请求所有用到的区划数据onload:function(){ var url = app.globalD...原创 2019-03-14 15:43:46 · 5117 阅读 · 0 评论 -
PHP 安装redis扩展
1.确定php的redis扩展版本【1】使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本。【2】查看PHP版本信息echo PHP_VERSION; //5.6.302.下载并安装【1】下载解压,复制下载地址http://pecl.php.net/package/redis/2.2.7/windows下载版本为:php_redis-2.2.7...原创 2019-04-22 16:18:54 · 240 阅读 · 0 评论 -
PHP操作redis
PHP操作Redis文档:https://github.com/phpredis/phpredis Redis类的命名空间都在根下 phpredis的命令和参数和redis的实际命令一致1.PHP的Redis String操作<?php$redis=new \Redis(); //Redis的实例化,Redis类是在根目录下$redis->connect("127.0...原创 2019-04-22 17:10:23 · 138 阅读 · 0 评论 -
TP5.1 配置项的获取与设置
<?phpnamespace app\admin\controller;use think\facade\Config;class User{ public function get() { //【1】获取全部的配置项 dump(Config::get()); //【2】仅获取app下面的配置项,app是一级配置...原创 2019-09-27 17:30:04 · 1590 阅读 · 1 评论