WisdowsBlog 
  • Home
  • Archives
  • Categories
  • Tags
  • About
  •     

PHP 四大经典数组排序方式

1、冒泡排序在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即,每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 12345678910111213141516171819202122232425262728293031323334353637383940// 升序$arr=[1,43,54,62,21,66,32,78,36,76,39];function bubbleSort($arr){ $len=count($arr); //该层循环控制 需要冒泡的轮数 for($i=1;$i<$len;$i++) { //该层循环用来控制每轮 冒出一个数 需要比较的次数 for($k=0;$k<$len-$i;$k++) { if($arr[$k]>$arr[$k+1]) { $tmp=$arr[$k+1]; $arr[$k+1]=$arr[$k]; $arr[$k]=$tmp;
 2019-08-18   PHP    原创  算法 

PHP session与cookie详解

PHP session 与 cookie 区别 session 与 cookie 是什么? session 与 cookie 属于一种会话控制技术.常用在身份识别,登录验证,数据传输等.举个例子,就像我们去超市买东西结账的时候,我们要拿出我们的会员卡才会获取优惠.这时候,我们怎么识别这个会员卡真实有效的呢?当我们将会员号给到收银员,收银员根据我们提供的会员号,输入到系统中,系统根据这个会员号去查询,如果查询到了就证明这个会员号是真实存在的.这里的会员号就好比 cookie 与 session.会员系统就好比服务器端,收银员就好比客户端. 为什么会用到 session 与 cookie 呢? 根据上述的例子,我们知道 session 与 cookie 是可以干什么的了,那为什么必须用这个来实现呢?这里就有必要了解一下 http 应用传输协议的特点了。由于 http 协议是无状态的,即浏览器去请求了一个网页,这时候就是一个 http 请求,当服务端接收到请求之后,返回客户端需要的数据,在这过程中浏览器与服务器是建立了一个连接的。但是当服务端返回数据,客户端收到数据之后,他们的这种连接
 2019-08-18   PHP    原创  会话技术  session  cookie 

PHP部署项目设置目录安全授权

设置目的 PHP 为了安全性考虑,有一项 open_basedir 的设置,该配置可以设置你访问目录的权限.根据你 web 服务器环境,open_basedir 可以在几个地方设置. 如何配置 1.在 PHP 配置文件 php.ini 文件中配置 1;open_basedir = 如果发现该项没有有配置,可以查看一下 fastcgi.conf 文件中是否有如下配置: 1fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root:/tmp/:/proc/:/project_root_path"; project_root_path是配置 PHP 可访问的目录.多个配置时可以使用;隔开(记住一定是英文输入状态下的分好). 2.在自定义的.user.ini 文件中配置 一般情况下是在项目的根目录下面创建该文件,文件的内容可如下配置. 1open_basedir=/project_root_path:/tmp/:/proc/ project_root_path是项目跟目录的绝对路径. 配置好之后还需要做如下操作才能使该文件
 2019-08-18   PHP    原创  PHP  安全 

ThinkPHP5自定义异常处理类

ThinkPHP5 之后封装了系统的异常类操作,同时我们也可以在 config 目录下面的 app.php 配置文件中设置我们自定义的异常处理操作.配置项如下 12// 异常处理handle类 留空使用 \think\exception\Handle'exception_handle' => '', 要实现自定义,其实实现原理很简单,我们可以把系统默认的异常类当做父类,我们自身创建的类当做子类,子类去集成父类并重写父类的方法,这样就可以实现自定义异常类了。通过查看系统异常类,可以发现只要是通过如下方法实现(下面的方法为\think\exception\Handle 类的 render 方法)。 12345678910111213141516public function render(Exception $e) { if ($this->render && $this->render instanceof \Closure) { $result = call_user_func_array($this->re
 2019-08-18   PHP    原创  ThinkPHP5 

Springcloud学习笔记(六)

六、zuul路由网关1、概述Zuul包含了对请求的==路由和过滤==的主要功能: 路由功能 主要负责将外部请求转发到具体的微服务上,是实现外部访问入口的基础 过滤功能 负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础 Zuul与Eureka进行整合,将==Zuul自身注册为Eureka==服务治理下的应用,同事从Eureka中获得其他微服务的信息,也即以后的微服务访问都是通过Zuul跳转后获得。 ==三大功能—-==代理、路由、过滤 2、路由基本配置 新建springcloud-study-zuul-gateway-9527模块 pom文件 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.or
 2019-08-18   Java  Springcloud  微服务 

Springcloud学习笔记(五)

四、Feign负载均衡1、概述官网地址:http://cloud.spring.io/spring-cloud-openfeign/single/spring-cloud-openfeign.html 是一个声明式Webservice客户端,,使得编写web服务客户端变得非常容易 ==只需要创建一个接口,然后再上面添加注解即可== 面向接口编程,比如webservice接口 微服务名称获得调用地址 通过接口+注解,获得调用服务 统一面向接口的编程套路—feign 前面再使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成一套模板化的调用方法,但是在实际的开发中,由于对服务依赖的调用可能不止一处,==往往一个接会被多处调用,所以通常会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用==。所以,Feign在此基础上做了一些封装,由他来帮助我么定义和实现依赖服务接口的定义。在Feign的实现下,==我们只需要创建一个接口并使用注解的方式来配置它==(以前是Dao接口上面标注Mapper注解,现在是一个微服务接口上面标注一个Fe
 2019-08-18   Java  Springcloud  微服务 

Springcloud学习笔记(四)

三、Ribbon负载均衡1、概述基于Netflix ribbon实现的一套 ==客户端、负载均衡的工具== 重要功能是提供==客户端的软件负载均衡算法==,Ribbon客户端组件提供一系列的配置项如链接超时、重试等 官网资料:github:Netfix/Ribbon 常见的负载均衡:软件Nginx、LVS 硬件F5 2、Ribbon初步配置1、修改consumer-80的配置 修改pom配置,增加相关引用 12345678910111213<!--Ribbon相关引用,与eureka有关--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId>
 2019-08-17   技术    Java  Springcloud  微服务 

Springcloud学习笔记(三)

5、Eureka集群配置1、新建7002、7003Eureka服务项目复制7001的pom、yml文件2、修改域名映射,修改host文件==必须修改,否则不成功== 3、台Eureka的yml配置 修改7001、7002、7003对应的yml配置 1234service-url: # 单机版配置defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka #设置与eureka server 交互的地址查询服务和注册服务都需要依赖的地址 #集群配置 defaultZone: http://localhost:7001/eureka,http://localhost:7002/eureka 4、在8001配置注册修改yml中集群的配置,使8001同时注册进7001-3集群环境 1234eureka: client: service-url: defaultZone: http://localhost:7001/eureka,http://localhost:7002/eureka,ht
 2019-08-17   技术    Java  Springcloud  微服务 

Springcloud学习笔记(二)

二、Eureka配置 新建springcloud-study-euraka-7001工程,导入相关依赖 pom文件配置 1234567891011121314151617181920212223242526272829303132<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.gxs.springcloud</groupI
 2019-08-17   技术    Java  Springcloud  微服务 

Springcloud学习笔记(一)

一、工程环境搭建spring cloud版本:Dalston.SR1 spring boot版本:1.5.19.RELEASE 1、父工程搭建 新建springcloud-study 父工程 pom文件 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&
 2019-08-17   技术    Java  Springcloud  微服务 
1…678910…28

搜索

Hexo Fluid
 总访问量 次   总访客数 人