
php
文章平均质量分 77
渲染笔墨情
人生就是一场冒险,你已经入局。
展开
-
php代码规范
如有问题,请发私信,或者qq 1184139881一、文档说明本文档适用于技术中心PHP开发人员,对代码约定俗成的一些习惯进行说明,旨在统一代码风格、降低代码维护成本。二、文件格式1. 文件编码文件编码一般建议采用UTF-8无BOM。2. PHP文件对于只含有 php 代码的文件,我们将在文件结尾处忽略掉 "?>" 。防止多余的空格或者其它字符影响到代码。不允许使用原创 2017-08-16 19:08:32 · 284 阅读 · 0 评论 -
cmd发生系统错误5 拒绝访问解决办法
有时候我们会经常发生cmd下无法运行的错误(发生系统错误5 拒绝访问),那是因为cmd没有以管理员身份运行,那么如何以管理员身份运行呢???工具/原料cmd方法/步骤在C:\Windows\System32(操作系统分为32位和64位,视个人情况选择)中找到cm原创 2017-09-15 09:38:53 · 17758 阅读 · 0 评论 -
Win7下Apache2.4-win64的安装和配置以及启动服务
最近开始学习web开发,首先安装apache服务器,网上类似的教程很多,但对于新手来说不够详细,特把安装过程做一个详细记录,一来作为自己的笔记,也希望为需要帮助的朋友一些启发。软件的下载地址在截图中放出,需要指出的是如果没有安装VC14的需要安装,否则会出错,其实网页上也已经做了提示。http://www.apachelounge.com/download/将下原创 2017-09-15 09:41:24 · 889 阅读 · 0 评论 -
详解PHP实现定时任务的五种方法
定时运行任务对于一个网站来说,是一个比较重要的任务,比如定时发布文档,定时清理垃圾信息等,现在的网站大多数都是采用PHP动态语言开发的,而对于PHP的实现决定了它没有Java和.Net这种AppServer的概念,而http协议是一个无状态的协议,PHP只能被用户触发,被调用,调用后会自动退出内存,没有常驻内存。如果非要PHP去实现定时任务, 可以有以下几种解决方案:一. 简单直接原创 2017-09-15 09:43:20 · 351 阅读 · 0 评论 -
THINKPHP3.2命名空间
3.2版本全面采用命名空间方式定义和加载类库文件,有效的解决多个模块之间的冲突问题,并且实现了更加高效的类库自动加载机制。由于新版完全采用了命名空间的特性,因此只需要给类库正确定义所在的命名空间,而命名空间的路径与类库文件的目录一致,那么就可以实现类的自动加载。 例如,Org\Util\File类的定义为:namespaceOrg\Util;classFile原创 2017-09-15 09:44:11 · 181 阅读 · 0 评论 -
多个session共享数据如何实现 - PHP进阶
首先创建数据表,MySQL的SQL语句,CREATE TABLE `sess` ( `sesskey` varchar(32) NOT NULL default '', `expiry` bigint(20) NOT NULL default '0', `data` longtext NOT NULL, PRIMARY KEY (`sesskey`), KEY `expiry` (`expir原创 2017-09-17 19:19:27 · 354 阅读 · 0 评论 -
git的基本操作
GIT基本操作:1、新建远程仓库 git --bare init 路径2、在开发环境上连接远程仓库 git clone *****3、提交新文件来测试git git status :查看当前有多少要加入版本库的文件 git add ./ :加入所有当前目录下的文件到内存中 git commit -m '描述':提交到本地仓库原创 2017-09-29 10:32:23 · 223 阅读 · 0 评论 -
ajax上传图片
index.html Ajax 上传文件 var xhr; function createXMLHttpRequest() { if (window.ActiveXObject) { xhr =原创 2017-09-21 19:31:52 · 297 阅读 · 0 评论 -
PHP四种基本排序算法
前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序。 $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即,每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它原创 2017-11-08 08:00:58 · 181 阅读 · 0 评论 -
网络七层协议的形象说明
form:http://www.cnblogs.com/dongzhiquan/archive/2011/12/15/2289438.html第一层,物理层 OSI模型最低层的“劳苦大众”。它透明地传输比特流,就是传输的信号。该层上的设备包括集线器、发送器、接收器、电缆、连接器和中继器。第二层,数据链路层 这一层是和包结构和字段打交道的和事佬。一方面接收来自网络层(原创 2017-11-08 09:05:52 · 201 阅读 · 0 评论 -
几种链表的概念
何谓链表? :链式存储的线性表,简称链表。链表由多个链表元素组成,这些元素称为节点。结点之间通过逻辑连接,形成链式存储结构。存储结点的内存单元,可以是连续的也可以是不连续的。逻辑连接与物理存储次序没有关系。链表分为两个域: 值域:用于存放结点的值 链域:用于存放下一个结点的地址或位置从内存角度出发: 链表可分为 静态链表、动态链表。 从链表存储方式的角度出发:链表可分为原创 2017-11-15 10:03:37 · 480 阅读 · 0 评论 -
TCP和UDP的区别
TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。TCP/IP协议集包括应用层,转载 2017-11-06 16:05:35 · 199 阅读 · 0 评论 -
Tp3.2和Tp5.0之间的区别
5.0版本和之前版本的差异较大,本篇对熟悉3.2版本的用户给出了一些5.0的主要区别。URL和路由5.0的URL访问不再支持普通URL模式,路由也不支持正则路由定义,而是全部改为规则路由配合变量规则(正则定义)的方式:主要改进如下;增加路由变量规则;增加组合变量支持;增加资源路由;增加路由分组;增加闭包定义支持;增加MISS路由定义;支持URL路由规则反解析原创 2017-12-04 20:03:39 · 4569 阅读 · 1 评论 -
api接口安全
接口的安全性主要围绕Token、Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看:Token授权机制:用户使用用户名密码登录后服务器给客户端返回一个Token(通常是UUID),并将Token-UserId以键值对的形式存放在缓存服务器中。服务端接收到请求后进行Token验证,如果Token不存在,说明请求无效。Token是客户端访问服务端的凭原创 2017-12-04 20:11:46 · 714 阅读 · 1 评论 -
PHP基础面试题
1. 什么事面向对象?主要特征是什么?面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。 2. SESSION 与 COOKIE的区别是什么,请从协议,产生的原因与作用说明?1、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户。2、SESSION存储在服务器端,COOKIE保存在客户端。Ses...原创 2018-05-14 19:22:42 · 3467 阅读 · 1 评论 -
Laravel5.5/6 报错call to undefined function openssl cipher iv length()
在安装laravel5.5后, 访问显示报错。 call to undefined function openssl cipher iv length()经查为php7.1的OpenSSL扩展加载失败导致恢复方法 检查http.conf 是否开启 LoadModule ssl_module modules/mod_ssl.so 检查php.ini是否开启 extension=ph...原创 2018-08-23 22:58:43 · 751 阅读 · 0 评论 -
LDAP
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。本文将演原创 2017-09-14 11:47:42 · 380 阅读 · 0 评论 -
ldap 身份验证的通用步骤
和利用数据库进行验证类似,LDAP中也是利用登陆名和密码进行验证,LDAP中会定义一个属性password,用来存放用户密码,而登陆名使用较多的都是mail地址。那怎么样才能正确的用LDAP进行身份验证呢,下面是一个正确而又通用的步骤: 1. 从客户端得到登陆名和密码。注意这里的登陆名和密码一开始并没有被用到。 2. 先匿名绑定到LDAP服务器,如果LDAP服务器没原创 2017-09-14 11:46:33 · 18610 阅读 · 0 评论 -
多人邮箱发送
如有问题,请联系 1184139881@qq.comemail.php header("Content-type:text/html;charset=utf-8"); require 'phpmail/PHPMailerAutoload.php'; $dsn = 'mysql:host=127.0.0.1;dbname=library;port=3306;charset原创 2017-08-21 11:32:18 · 525 阅读 · 0 评论 -
单人邮箱发送
header('content-type:text/html;charset=utf-8');include './class.phpmailer.php';include './class.smtp.php';//实例化邮件发送类$mail = new PHPMailer();// 使用SMTP方式发送$mail->IsSMTP();// 设置邮件的字符编码原创 2017-08-25 09:24:29 · 343 阅读 · 0 评论 -
Cookie/Session机制详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1 Cookie机制原创 2017-08-22 09:05:33 · 214 阅读 · 0 评论 -
线性表,线性表和链表的区别
存储类别顺序存储结构单链表存储分配方式用一段连续的存储单元依次存储线性表的数据元素采用链式存储结构,用一组任意的存储单元存放线性表的元素时间性能查找O(1)、插入和删除O(n)查找O(n)、插入和删除O(1)空间性能需要预分配存储空间,分大了浪费,小了容易发生上溢不需要分配存储空间,转载 2017-08-15 10:02:44 · 2510 阅读 · 0 评论 -
加权随机数
写一个函数,可以根据各个元素的权重返回随机数 (加权随机数) function(Array_A,n) Array_A:是一个数组,表示各个元素出现的概率, n:为需要返回的元素个数 如果n=1,则返回一个元素(Array_A中的key) , n=2则返回两个元素(Array_A中的key)示例:function({20,50,30},1): 返回长原创 2017-08-15 10:40:40 · 725 阅读 · 0 评论 -
三种常见的设计模式
单例模式又称为职责模式,它用来在程序中创建一个单一功能的访问点,通俗地说就是实例化出来的对象是唯一的。所有的单例模式至少拥有以下三种公共元素:1. 它们必须拥有一个构造函数,并且必须被标记为private2. 它们拥有一个保存类的实例的静态成员变量3. 它们拥有一个访问这个实例的公共的静态方法单例类不能再其它类中直接实例化,只能被其自身实例化。它不会创建实例副本,而是会向单例类原创 2017-08-22 11:41:29 · 864 阅读 · 0 评论 -
获取客户端ip
1.统计访问者IP地址2.设置黑名单,黑名单的用户不可以访问聊天室。 php获取客户端真实IP防止代理和作弊内容提要:这种情况下同样透露了客户端是使用了代理服务器,但编造了一个虚假的随机IP(220.4.251.159)代替客户端的真实IP来欺骗它…… 获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,不能百分百准确原创 2017-09-14 10:13:28 · 350 阅读 · 0 评论 -
thinkphp框架中session的使用
本文实例讲述了ThinkPHP中Session用法。分享给大家供大家参考。具体如下:在ThinkPHP封装了Session类,用户可以直接使用,常用的方法有:Session::set(name, value):注册 session 。Session::is_set(name):检查Session的值是否设置。Session::get(name):读取 session 。Se原创 2017-09-14 11:29:50 · 5517 阅读 · 0 评论 -
oAuth
OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。oAuth是Open Authorization的简写。定义编辑OAUTH协议为用户资源的授权提供了一个安全的、开放而又原创 2017-09-14 11:30:59 · 350 阅读 · 0 评论 -
对称加密与非对称加密优缺点详解
对称加密:双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密。优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效率高。缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不原创 2017-09-14 11:33:00 · 5411 阅读 · 0 评论 -
SYN攻击(DDOS攻击的一种)
SYN攻击是黑客攻击的手段。SYN洪泛攻击的基础是依靠TCP建立连接时三次握手的设计。第三个数据包验证连接发起人在第一次请求中使用的源IP地址上具有接受数据包的能力,即其返回是可达的。SYN攻击概述编辑据统计,在所有黑客攻击事件中,SYN攻击是最常见又最容易被利用的一种攻击手法。相信很多人还记得2000年YAHOO网站遭受的攻击事例,当时黑客利用的就是简单而有效的SYN原创 2017-09-14 11:33:37 · 7133 阅读 · 0 评论 -
分布式拒绝服务攻击(DDOS)
分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在网络上的许多计算机上。代理程序收到指令时就发动原创 2017-09-14 11:34:38 · 17171 阅读 · 0 评论 -
RabbitMQ+PHP消息队列系统
MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较原创 2017-09-14 11:35:20 · 1695 阅读 · 0 评论 -
大型网站架构之分布式消息队列
一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,原创 2017-09-14 11:36:17 · 195 阅读 · 0 评论 -
常见网络攻击类型
SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击. 根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后原创 2017-09-14 11:37:17 · 42474 阅读 · 0 评论 -
Windows下安装Composer 以及使用Composer安装laravel
在windows下安装的方法PHP命令安装 1. cmd进入命令提示符,进入安装目录下 我的安装目录在(D:\composer),如图2. 下载composer.phar 输入命令: php -r "readfile('https://getcomposer.org/installer');" | php 注意: 1)如果出现如下错误,你需...原创 2018-08-25 18:03:21 · 1505 阅读 · 0 评论