SS'Blog - SS'Blog

PHP THAT DOESN'T HURT. CODE HAPPY & ENJOY THE FRESH AIR.

HAPPY NEW YEAR !

Laravel
StudyScript.com

队列错误处理

执行队列监听报错[2017-03-02 19:42:22] local.ERROR: InvalidArgumentException: No handler registered for command [__PHP_Incomplete_Class] in G:\rrd\mch\vendor\l ······
阅读全文

Laravel 加密

在Laravel中,关于加密你会发现有几种说法,一个是Encryption,一个是Hash,还有一个是bcrypt,bcrypt和Hash是同一个意思。Encryption和Hash的区别:哈希(Hash)是将目标文本转换成具有相同长度的、不可逆的杂凑字符串(或叫做消息摘要),而加密(Encrypt ······
阅读全文

PHP处理密码的几种方式

在使用PHP开发Web应用的中,很多的应用都会要求用户注册,而注册的时候就需要我们对用户的信息进行处理了,最常见的莫过于就是邮箱和密码了,本文意在讨论对密码的处理:也就是对密码的加密处理。MD5相信很多PHP开发者在最先接触PHP的时候,处理密码的首选加密函数可能就是MD5了,我当时就是这样的:$p ······
阅读全文

laravel之Migrations

说明以前我们团队进行开发,如果数据库结构修改,就要从MySQLWorkbench把整个库或某个表的SQL语句导出来再提交到git, 别人用SQL语句重建某个库或某个表,这样好麻烦。Laravel Migrations就可以避免做这件事。只需要获取到migrations的文件,再migrate就可以了 ······
阅读全文

laravel之Migrations实践

使用php artisan migrate命令迁移数据库报错,报错info: [Illuminate\Database\QueryException]   SQLSTATE[42S02]: Base table or view not found:    1146 Table 'st ······
阅读全文

数据库垂直拆分

一、缘起当数据库的数据量非常大时,水平切分和垂直拆分是两种常见的降低数据库大小,提升性能的方法。假设有用户表:user(uid bigint,name varchar(16),pass varchar(16),age int,sex tinyint,flag tinyint,sign varchar ······
阅读全文

web架构-请求频率限制(Rate limiting)

Rate limiting 在 Web 架构中非常重要,是互联网架构可靠性保证重要的一个方面。从最终用户访问安全的角度看,设想有人想暴力碰撞网站的用户密码;或者有人攻击某个很耗费资源的接口;或者有人想从某个接口大量抓取数据。大部分人都知道应该增加 Rate limiting,做请求频率限制。从安全角 ······
阅读全文

使用SSH代理连接mysql(xshell版)

本地通过隧道经跳转机访问内网数据库服务器(Xshell、Navicat、Mysql)                   情景描述:本地开发机器    A   localhost跳转机器       B  115.236.125.92数据库服务器    C  10.120.151.245A可达B,B ······
阅读全文

laravel debug安装与线下调试、线上优化区别配置安装

以dubug安装过程说下线下开发环境与线上生产环境如何优化。Laravel Debugbar 调试神器composer require barryvdh/laravel-debugbar --dev新增Service Provider位于/app/Providers/AppServiceProvid ······
阅读全文

Laravel 在 with 查询中只查询个别字段

在使用 Laravel 的关联查询中,我们经常使用 with 方法来避免 N+1 查询,但是 with 会将目标关联的所有字段全部查询出来,对于有强迫症的我们来说,当然是不允许的。这时候我们可以使用下面的技巧在使用 with 时只查询目标关联的部分字段:$topics = Topic::limit( ······
阅读全文

wordpress分类方法体系Taxonomy的初步探讨

在wordpress中,我们很很奇怪的是,它的分类和我们理解中的分类存在一定的偏颇。我们理解中的分类只是简单的对文章内容的分类,而在wordpress中,这种分类仅仅被定义为栏目、分类目录,而除此之外,wordpress存在一个我们不是很理解的“分类法”的概念,当然,如果简单的从字面理解很简单,即按 ······
阅读全文

PHP检测移动设备类mobile detection使用实例

目前,一个网站有多个版本是很正常的,如PC版,3G版,移动版等等。根据不同的浏览设备我们需要定向到不同的版本中。不仅如此,我们有时候还需要根据不同的客户端加载不同的CSS,因此我们需要能够检测浏览设备,SO,我们就需要用到“mobile detection”类库。“mobile detection” ······
阅读全文

Unit单元测试

你是否在程序开发的过程中遇到以下的情况:当你花了很长的时间开发一个应用后,你认为应该是大功告成了,可惜在调试的时候,老是不断的发现bug,而且最可怕的是,这些bug是重复出现的,你可能发现这些bug之间会有关联,但却老是找不到问题的所在。  当你遇到以上这些令你沮丧的情况时,你一定会想能有什么更好的 ······
阅读全文

laravel软删除解析

在laravel框架ORM模型中默认会有三个时间字段,created_at,updated_at,deleted_at,这三个时间字段是框架默认操作,不用另加代码去处理,非赏方便:如: UserModel::create($insert); ORM模型会自动添加上create_at字段但写入当前时间 ······
阅读全文

mysql 水平分表的几种方法

一,先说一下为什么要分表当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1,接收到sql;2,把sql放到排队队列中 ;3,执行sql;4,返回执行 ······
阅读全文

Laravel5.1自带权限控制系统 ACL搭建

Laravel在5.1.11版本中加入了Authorization,可以让用户自定义权限,今天分享一种定义权限系统的方法。1. 创建角色与权限表使用命令行创建角色与权限表:php artisan make:migration create_permissions_and_roles --create ······
阅读全文

laravel 单元测试

1、概述及配置Laravel 中集成了PHPUnit进行单元测试,实际上,使用PHPUnit进行单元测试在Laravel中是开箱即用的,测试的配置文件为根目录下的 phpunit.xml ,该配置文件为我们做好了所有配置工作:               ./tests/        ······
阅读全文

Laravel 数据软删除

1、删除模型1.1 使用delete删除模型删除模型很简单,先获取要删除的模型实例,然后调用delete方法即可:$post = Post::find(5); if($post->delete()){     echo '删除文章成功!'; }else{     echo & ······
阅读全文

Laravel artisan 命令使用(中文)

Laravel artisan 命令使用G:\tang\study.git>php artisan list Laravel Framework version 5.1.45 (LTS) Usage:   command [options] [arguments] Options(选 ······
阅读全文

Laravel Eloquent数据操作小技巧

在大型的项目中使用 Laravel Eloquent ORM,某些工作可能会变得重复和繁琐,所以本文为大家总结了 5 个很少人知道的小技巧,在开发过程中帮我节省了很多时间。下面就让我们开始吧。1. 快速生成 Model & Migration这并不是一个很多人知道的小技巧,在 Laravel 文档中 ······
阅读全文

Laravel中间件的创建使用及中间件参数定义

1、中间件简介Laravel中可以把HTTP中间件看做“装饰器”,在请求到达最终动作之前对请求进行过滤和处理。中间件在Laravel中有着广泛的应用,比如用户认证、日志、维护模式、开启Session、从Session中获取错误信息,以及上一篇教程中提到的CSRF验证,等等。中间件类默认存放在app/ ······
阅读全文

CSRF攻击原理及Laravel框架中的防护

1、什么是CSRF攻击CSRF是跨站请求伪造(Cross-site request forgery)的英文缩写。关于CSRF攻击原理及其防护,可查看Github上的这个项目:理解CSRF,说得比较详细和透彻。2、Laravel中如何避免CSRF攻击Laravel框架中避免CSRF攻击很简单:Lara ······
阅读全文

节约内存:Instagram的Redis实践

Instagram可以说是网拍App的始祖级应用,也是当前最火热的拍照App之一,Instagram的照片数量已经达到3亿,而在Instagram里,我们需要知道每一张照片的作者是谁,下面就是Instagram团队如何使用Redis来解决这个问题并进行内存优化的。首先,这个通过图片ID反查用户UID ······
阅读全文

MySQL存储过程、自定义函数的优劣分析

我们常用的SQL语句在执行的时候需要首先进行编译,然后执行,而存储过程则是一组为了完成特定功能的SQL语句集,它直接编译好了存储在数据库中,用户通过指定存储过程的名字即可调用该存储过程。存储过程的优点主要包括以下几点:第一点,性能提高。这是相对于不适用存储过程来说的,因为存储过程在创建的时候就编译好 ······
阅读全文

Mysql存储过程和函数区别介绍

存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。 存储过程和函数存在以下几个区别: 1)一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。存储过程,功 ······
阅读全文

高并发量网站解决方案

一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性 能的要求都很简单。随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及 面非常广,从硬 ······
阅读全文

高并发

简单理解下高并发:高并发是指在同一个时间点,有很多用户同时的访问URL地址,比如:淘宝的双11,双12,就会产生高并发,如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击,再屌丝点的说法就像玩撸啊撸被ADC暴击了一样,那伤害你懂得(如果你看懂了,这个说法说明是正在奔向人生巅峰的屌丝。高并发会来带 ······
阅读全文

php实现SESSION跨域

稍微大一点的网站,通常都会有不只一个服务器,每个服务器运行着不同的功能模块或者不同的子系统,他们使用不同的二级域名,比如www.a.com、 i.a.com、bbs.a.com。而一个整体性强的网站,用户系统是统一的,即一套用户名、密码在整个网站的各个子系统中都是可以登录使用的。各个服 务器共享用户 ······
阅读全文

smarty模版format函数不支持中文年月日解决方法

smarty模版中format函数不支持中文,比如可以用{{$date|date_format:"%Y-%m-%d"}}//输出2016-06-06格式若要输出为2016年6月6日,把-替换为年月日则不行。解决方法:通过工具把中文转为UTF-8编码格式{{$date|date_format:"%Y& ······
阅读全文

mysql.sock

mysql.sock文件是服务器与本地客户端进行通信的Unix套接字文件,其默认位置是/tmp/MySQL.sock。这有可能导致问题,原因在于,在某些版本 的Unix上,任何人都能删除/tmp目录下的文件。  在大多数Unix版本中,可对/tmp目录进行保护,使得文件只能被其所有这或 超级用户(根 ······
阅读全文

MySQL优化

 10. 从 PROCEDURE ANALYSE() 取得建议PROCEDURE ANALYSE() 会让 MySQL 帮你去分析你的字段和其实际的数据,并会给你一些有用的建议。只有表中有实际的数据,这些建议才会变得有用,因为要做一些大的决定是需要有数据作为基础的。例如,如果你创建了一个 INT 字 ······
阅读全文

如何安全存储秘密

一、我是新手我怕谁    新手程序猿通常会直接存储明文密码在数据库中,好一点的会使用MD5来加密密码后存储md5(password),再好一点的会sha1加密密码后存储sha1(password)。将常用的组合哈希后存入数据库,用来爆库,这个就是所谓的彩虹表。二、加盐salted    在密码中加入 ······
阅读全文

composer.json文件解析

require和require-dev属性线下开发环境和线上生产环境功用不同,一些package在本地线下安装,而没有必要在线上项目安装,影响线上性能。只在本地使用的package,通过composer本地安装时,可以加上--dev参数,如debug:composer require barryvd ······
阅读全文

laravel composer install报错

错误信息/bootstrap/autoload.php on line 17解决方法:根据具体报错信息,把config/app.php配置文件内的相关服务提供者注释掉,等安装完在打开。原因:app.php文件内的配置文件是安装后加的,项目迁移或者变更后,在没安装前执行会报该提供者不存在。所以安装前先 ······
阅读全文

使用urldecode函数解决传参等多符号嵌套一起时双引号丢失问题

当多单引号或双引号多次使用时,容易碰到问题下例中如不用urldecode容易出错:echo '点我连接到新页面'; echo '点我连接到新页面'; echo '点我连接到新页面'; //"输出到浏览器端的时候会自动解码为符号,浏览器字 ······
阅读全文

MySQL获取不同分类/作者的前N条记录

一个文章表中获取所有作者的前N条记录。表结构DROP TABLE IF EXISTS `article`; CREATE TABLE `article` (   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,   `title` char(20)  ······
阅读全文

laravel--模型里各种属性详解

1.$guarded属性,$fillable属性$guarded属性一般是和$fillable对应的,不是一起存在但是互相使用,他们都是laravel的批量赋值方法create()的,一个设置属性参数,有点这个意思。在create方法收集数据赋值的时候$flight = App\Flight::cr ······
阅读全文

MySQL安全之PDO预处理语句与存储过程

不论是使用addslashes还是mysql_real_escape_string,都可以利用编码的漏洞来实现输入任意密码就能登录服务器的注入攻击!!!!(攻击的原理我就不多说了,感兴趣的同学可以研究下字符编码中单字节和多字节的问题) 注意:第三个mysql_real_escape_string之所 ······
阅读全文

十个 Laravel 5 程序优化技巧

性能一直是 Laravel 框架为人诟病的一个点,所以调优 Laravel 程序算是一个必学的技能。接下来分享一些开发的最佳实践,还有调优技巧,大家有别的建议也欢迎留言讨论。这里是简单的列表:配置信息缓存 artisan config:cache路由缓存 artisan route:cache类映射 ······
阅读全文

PHP中CURL向服务器请求

0. curl是个什么东西    PHP supports libcurl, a library created by Daniel Stenberg, that allows you to connect and communicate to many different types of ser ······
阅读全文

laravel线上环境使用artisan命令优化项目

命令优化本文的目的是来弄清楚一些优化命令在 Laravel 5.1 和之前版本之间的差别. 在 15年6月发布的 Laravel 5.1版本中, 命令和他们的逻辑方法被清理掉, 本文章就是描述这些不同.Laravel 5 在优化框架性能的时候提供了一系列的命令, 这篇文章接卸这些命令做什么并且把缓存 ······
阅读全文

用php-fpm的慢执行日志slow log分析优化PHP程序

启用php-fpm的slow log日志,查看执行时间过长的php文件,并将执行时间过长的进程直接终止掉!看看效果如何!具体操作方法也简单,就修改一个文件,执行命令:# vi /usr/local/php/etc/php-fpm.confPHP 5.3.3 之后版本设置如下:; The timeou ······
阅读全文

消息队列

队列应用场景一般在需要后台大量逻辑处理或计算资源的情况下采取队列,同时也可以提高前端的用户体验。订单创建成功,向用户发送一条短信,一个邮件通知,……等操作,由于邮件发送比较慢,很耗时,这就导致了用户下单会变慢。php本身不支持多线程和异步,最好的解决办法就是把注册信息缓存起来(比如说存到数据库),然 ······
阅读全文

ThinkPHP3.2利用PHPmail发送邮件提醒

PHPMailer是一个不错的邮件发送工具,php提供了mail()函数,但并不好用。配置1、下载PHPMailer,解压到ThinkPHP\Library\Vendor目录。2、Common文件夹公用函数文件function.php内新建方法/**  * 邮件发送函数  */ functio ······
阅读全文

Memcached分布式部署方案设计(含PHP代码)

一台Memcache通常不能满足我们的需求,这就需要分布式部署。Memcached分布式部署方案通常会采用两种方式,一种是普通Hash分布,一种是一致性Hash分布。本篇将以PHP作为客户端,来分析两种方案。    一、普通Hash分布:    代码很简单,一个Hash函数,根据所需要的key,将他 ······
阅读全文

MySql避免全表扫描

对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引:尝试下面的技巧以避免优化器错选了表扫描:使用ANALYZE TABLE tbl_name为扫描的表更新关键字分布。对扫描的表使用FORCE INDEX告知MySQL,相对于使用给定的索引表扫描将非常耗 ······
阅读全文

PHP数组签名

概括就是:“学会用PHP的openssl扩展!!”1、先用openssl_pkey_new()函数产生一个私钥pri_key,2、用openssl_csr_new()函数以私钥pri_key 产生一个信用证csr3、用openssl_sign()函数以私钥pri_key对一段数据data产生一个数字 ······
阅读全文

MySQl数据库优化实例

课程表(100条数据-通过存储过程创建测试数据参考)create table Course(     c_id int PRINARY KEY,     name vaarchar(10) )学生表(70000条数据)create table Sudent(     id int PRIMA ······
阅读全文

PHP获取文件操作-获取大小、下载

1.获取本机服务器文件大小直接用filesize($param=文件绝对路径)函数即可。注:因为 PHP 的整数类型是有符号的,并且大多数平台使用 32 位整数,filesize() 函数在碰到大于 2GB 的文件时可能会返回非预期的结果。对于 2GB 到 4GB 之间的文件通常可以使用 sprin ······
阅读全文

CoreSeek/Sphinx配置文件详细说明文档

sphinx的配置文件是在配置的时候最容易出错的了:我们先要明白几个概念:source:数据源,数据是从什么地方来的。index:索引,当有数据源之后,从数据源处构建索引。索引实际上就是相当于一个字典检索。有了整本字典内容以后,才会有字典检索。searchd:提供搜索查询服务。它一般是以deamon ······
阅读全文

CoreSeek/Sphinx介绍、安装与使用

介绍:Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计 ······
阅读全文

mysql函数find_in_set()

mysql函数find_in_set()与in的性质可以理解正好相反的概念。in是用来取满足字段值在in(,x,y,z,...)内的所有记录行。而find_in_set(x,字段值),是取满足x在字段值内的行则取出,注:字段值是以逗号(,)分隔的字符串,即该字段值保存的格式是x,y,z,...应用实 ······
阅读全文

网站安全-跨站请求伪造CSRF 01-解析

冒充用户之手XSS 是实现 CSRF 的诸多途径中的一条,但绝对不是唯一的一条。一般习惯上把通过 XSS 来实现的 CSRF 称为 XSRF。CSRF 是伪造请求,冒充用户在站内的正常操作。我们知道,绝大多数网站是通过 cookie 等方式辨识用户身份(包括使用服务器端 Session 的网站,因为 ······
阅读全文

Yii2中Authorization授权

授权是用来检验一个用户有足够权限来做些事情的举措。Yii提供两种授权方法:访问控制过滤(ACF)和基于角色的访问控制(RBAC) ······
阅读全文

MySQL索引分析与优化

一、索引是什么? 索引是用来快速寻找具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行query查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直到找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上创建了索引,MySQL就无 ······
阅读全文

散列表/哈希表 Hash table

PHP中数组在底层即是hash table,符号表也是使用Hash table实现。 Hash table即哈希表、散列表、Hash表,是根据关键字(Key value)而直接访问内存存储位置的数据结构。即通过把键值通过一个函数的计算,映射到表中一个位置来访问记录,这加快了查找速度。这个映 ······
阅读全文

PHP函数之ob_start()和ob_get_clean()的用法

查看压缩工具Minify源代码时在文件builder/index.php下看到使用ob_start()函数和$content = ob_get_clean(); ob_start()用来定义下面出现的echo内容不输出到浏览器上,而是将内容输出到缓冲区,如果想获得缓冲区的内容,这是 ······
阅读全文

RESTful架构详解-02 详解篇

1. 什么是RESTREST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:"我这篇文章的写 ······
阅读全文

PHP ORM框架与简单代码实现

ORM即Object/Relation Mapping的简写,一般称作“对象关系映射”,在Web开发中最常出没于和关系型数据库交互的地方。接口、中间件、库、包,你都可以这么称呼它。我们可以结合PHP和MySQL,从ORM的四个核心理念来认识它:简单:ORM以最基本的形式建模数据。比如ORM会将MyS ······
阅读全文

事务

事务是作为一个单元的一组有序的数据库操作。如果组中所有操作都成功则认为事务成功。当所有事务都完成,则提交。若其中一个失败,则事务将回滚,该事务所有的操作影响将取消。 事务就是一系列的操作,这些操作完成一项任务。只要操作里有一个操作没成功,事务就操作失败,发生回滚事件。即撤销前面的操 ······
阅读全文

Yii 2源码解析

Yii::$app 通过index.php入口初始化创建应用,实例化类代码: $application = new yii\web\Application($config); 在抽象类vendor\yiisoft\yii2\base\Application.php文件中的构造函数 ······
阅读全文

REST和SOAP的“风格”

REST和SOAP的“风格”比较REST和SOAP的“风格” 架构风格:来自Roy Thomas Fielding博士的定义:一种架构风格是一组协作的架构约束,这些约束限制了架构元素的角色和功能,以及在任何一个遵循该风格的架构中允许存在的元素之间的关系。SOAP:简单对象访问协议,基于XML,是一种 ······
阅读全文

PHP正则匹配中文字符

PHP中正则匹配中文字符 preg_match("/[\x{4E00}-\x{9FA5}]+/u",'PHP正则匹配中文字符',$matches); print_r($matches);//输出Array ( [0] => 正则匹配中文字符 ) 解析: ······
阅读全文

YII2别名-Aliases

MySQL数据库查询时可以设置表的别名方便查询亦可设置查询结果字段别名方便返回结果的使用。MySQL中用as设置别名,如select A.dddd as name,B.cccc as age from tableA as A left join tableB as B on A.id=B.b_ ······
阅读全文

MVC模式

模式:一种解决问题的通用方法。MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该 ······
阅读全文

Yii2加载js脚本和样式css文件

Yii2中页面的渲染是通过layout模板页套具体内容页来展示页面的,那么怎么根据内容页的不同,让layout模板页即页面的公共头部加载相应的js脚本和css样式呢? 可以通过在内容页文件调用 Yii::setAlias('@jsTang','js/tang.js');//设 ······
阅读全文

Yii2安装

准备工作: php版本确保是php5.4以上;下载安装Composer 或者中国镜像安装Composer;开启PHP的openssl支持:修改D:\WAMP\bin\php\php5.4.12配置文件php.ini,开启openssl即去掉签名分号。 extension=php_openssl ······
阅读全文

Laravel插件

列注释、表注释 github地址 (5.1版本之后已经自带)已经存在的数据表自动生成migrate文件 github ······
阅读全文

利用Xdebug分析PHP程序,找出性能瓶颈

一、安装配置1、下载PHP的XDebug扩展,网址:http://xdebug.org/2、在Linux下编译安装XDebugtar -xzf xdebug-2.0.0RC3.gz cd xdebug-2.0.0RC3 /usr/local/php/bin/phpize ./configure ······
阅读全文

php.ini线上推荐配置

display_errors = On; 是否将错误信息作为输出的一部分显示。; 在最终发布的web站点上,强烈建议你关掉这个特性,并使用错误日志代替(参看下面)。; 在最终发布的web站点打开这个特性可能暴露一些安全信息,; 例如你的web服务上的文件路径、数据库规划或别的信息。display_s ······
阅读全文

Yii2处理图片上传

yii2用表单上传文件经常用到的,该怎样上传呢?1、单个文件上传首先建立一个模型models/UploadForm.php,内容如下namespace app\models;use yii\base\Model;use yii\web\UploadedFile;/** * UploadForm is ······
阅读全文

第三方登录(微博、QQ)

微博第三方登录新浪微博的第三方登录直接下载对应SDK即可,前端入口a链接到配置好的指定地址(里面有会跳地址啊)。返回的里面即有要的数据。在CallBack页面获取到用户名和头像$_SESSION['nickname']=$usr_info['name']; ······
阅读全文

wordpress启用开发者模式后kindeditor保错Strict Standards

PHP类中有两种构造函数,一种是与类同名的函数,一种是__construct(),开始PHP版本5.4,对两个构造函数有了严格定义:__construct()函数必须在前,与类同名的构造函数在后。 报错语句:Strict standards: Redefining already defin ······
阅读全文

MySQL查询优化->explain用法和查询结果解析

MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP)。这条命令的输出结果能够让我们了解MySQL 优化器是如何执行 SQL 语句的。这条命令并没有提供任何调整建议,但它能够提供重要的信息帮助你做出调优决策。执行查询语句:mysql> explain select * from t_p ······
阅读全文

wordpress前台访问正常,后台登录时特别慢原因分析

刚开始屏蔽了所有被墙的国外请求,用着好好的,突然某日后台登录特别慢,甚是困惑啊,后来发现还是因为有国外网友的评论(当然是垃圾评论啦,小站还没那么大引力,哈哈~~)后才致使慢。 调试后发现是在wp-includes/plugable.php文件内函数get_avatar()第2100行左右代码 ······
阅读全文

Yii2的nginx环境配置伪静态

yii框架上传到lnmp服务器上后,除了首页其它页面都无法访问,总之就是以路由形式访问都不行。如http://yii.studyscript.com/index.php/site/contact 最后把config文件夹下main.php文件中定义的数组urlManager注释掉即去掉伪静态就o ······
阅读全文

wordpress密码生成与验证类-注册与登录秘密生成与验证

phpass是一种基于php的哈希算法,除wordpress外,Durpal 7也在使用该算法。WordPress系统的用户密码是保存在wp_users数据表的user_pass字段,密码是通过Portable PHP password hashing framework类产生的,密码的形式是随机且 ······
阅读全文

PHP - API接口开发

选择PHP作为服务器端开发语言优势:跨平台(可以运行在UNIX、LINUX、WINDOWS、Mac OS下)、低消耗(PHP消耗相当少的系统资源)、运行效率高(相对而言)、MySQL的完美搭档,本身是免费开源的。开发:1.约定开发规范如    提交方式(建议post),数据交互格式json最佳)、x ······
阅读全文

Yii函数参考

获取当前Yii框架版本 echo Yii::getVersion(); 获取除域名外的首页地址 echo Yii::app()->user->returnUrl; 获取首页地址(除域名外的根目录地址) echo Yii:app()->homeU ······
阅读全文

wordpress加载墙外文件改为加载自己服务器

生活在墙内是无法看到墙外靓丽风景,即使能看到也要费九牛二虎之力。为了博客能方便“看到墙外风景”博主就把国外风景移植到国内,以下是把wordpress加载的google的字体文件以及avatar下的图片到本地自己服务器。 A:wordpress使用本地样式和字体: goo ······
阅读全文

多维数组根据多字段(键值)排序

多维数组实现类似数据库sql查询中的order by例子 $data = array(             0  => array(                 'id'    => '510851539496070',                  ······
阅读全文

MYSQL 优化常用方法

1、选取最适用的字段属性       MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增 ······
阅读全文

SQL大全

当要导入的数据文件很大时使用软件导入会很慢,此时用命令行会更快:导入数据库1、首先建空数据库mysql>create database study;2、导入数据库方法一:(1)选择数据库mysql>use study;(2)设置数据库编码mysql>set names utf8;(3)导入数据(注意 ······
阅读全文

Mac下安装 LNMP 环境 Nginx+PHP5.6+MySQL+Redis+Memcached

安装Homebrew最近工作环境切换到Mac,所以以OS X Yosemite(10.10.1)为例,记录一下从零开始安装Mac下LNMP环境的过程确保系统已经安装xcode,然后使用一行命令安装依赖管理工具Homebrewruby -e "$(curl -fsSL https://raw.gith ······
阅读全文

Slim 中文文档

Slim 中文文档Slim 安装使用 Composer 进行安装首先在你的项目中安装 Composer:curl -s https://getcomposer.org/installer | php然后在你的项目根目录中建立名为 composer.json 的文件:{     "require": ······
阅读全文

YII框架-render传递参数到视图view层

...$this->render('edit', array(     'var1'=>$value1,     'var2'=>$value2, ));在视图脚本里,直接访问变量 $var1 和 $var2.判断那个页面请求输出不同内容(通过传 ······
阅读全文

YII URL格式解析

Yii URL的格式如下: http://yourip/index.php?r=controllerid/actionid/params。  显示入口的URL,然后用get传值r,r的值是用/间隔的参数依次是controllerid和actionid,然后还有附加参数。 controll ······
阅读全文

15个nosql数据库

1、MongoDB介绍MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案。当数据量达到50GB以上的时候,MongoDB的数据库访问速度是MySQL的10倍以上。MongoDB的并发读写效率不是特别出色 ······
阅读全文

PHP最全的常用正则表达式大全

一、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数 ······
阅读全文

PHP中9大缓存技术总结

1、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:Ob_start()******要运行的代码*******$content=Ob_get ······
阅读全文

网站安全-CSRF跨站请求伪造02-实例

攻击test.com站点添加后台管理员账号一、需要:知道该站添加管理员表单页面及表单提交地址。该功能没有token验证。在自己服务器新建页面csrf.html诱使用户访问该页面(csrf.html内是拷贝的test.com站点的增加管理员的表单提交页)。用户(管理员)已经登录或登陆过test.com ······
阅读全文

slim

在项目目录下安装composercurl -sS http://packagist.cn/composer/installer | php #国内镜像安装 php composer.phar #产看composer命令 php composer.phar require slim/slim:^3 ······
阅读全文

PHP运行模式

PHP运行模式有4钟:1)cgi 通用网关接口(Common Gateway Interface))2)fast-cgi 常驻 (long-live) 型的 CGI3)cli 命令行运行(Command Line Interface)4)web模块模式 (apache等web服务器运行的模块模式)1 ······
阅读全文

MySQL索引

*** Mysql索引概念 ***说说Mysql索引,看到一个很少比如:索引就好比一本书的目录,它会让你更快的找到内容,显然目录(索引)并不是越多越好,假如这本书1000页,有500也是目录,它当然效率低,目录是要占纸张的,而索引是要占磁盘空间的。*** 唯一索引 ***创建唯一索引的目的不是为了提 ······
阅读全文

MYSQL外键(Foreign Key)的使用

在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的 ······
阅读全文

如何备份及恢复Linux文件权限

你可能听说或碰到过这样的事情:一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏。在日常管理中,我们有许多工具可以用来备份文件权限,如cp、rsync、etckeeper等。如果你使用了这个备份工具,那么你的确不需要担心改变的文件权限问题。 ······
阅读全文

php中mysql数据库异步查询实现

问题通常一个web应用的性能瓶颈在数据库。因为,通常情况下php中mysql查询是串行的。也就是说,如果指定两条sql语句时,第二条sql语句会等到第一条sql语句执行完毕再去执行。这个时候,如果执行2条sql语句,每条执行时间为50ms,全部执行完毕可能需要100ms。既然,主要原因是sql的串行 ······
阅读全文

简述 OAuth 2.0 的运作流程

本文将以用户使用 github 登录网站留言为例,简述 OAuth 2.0 的运作流程。假如我有一个网站,你是我网站上的访客,看了文章想留言表示「朕已阅」,留言时发现有这个网站的帐号才能够留言,此时给了你两个选择:一个是在我的网站上注册拥有一个新账户,然后用注册的用户名来留言;一个是使用 githu ······
阅读全文

利用PHP SPL(Standard PHP Library)遍历目录实例

PHP SPL 中文翻译过来就叫PHP标准库,是PHP内置的封装好的一些类,在这里我们看看如何利用这个标准库来遍历一个文件夹下所有目录的文件。先看例子,然后讲解: ······
阅读全文

ThinkPHP目录结构

目录结构解析common 存放当前项目的公共函数conf  存放当前项目的配置文件Lang    存放当前项目的语言包Lib    存放当前项目的模型和控制器(M、C)Runtime    存放当前项目运行时的文件Tpl    存放当前项目的模板文件(V) ······
阅读全文

用 HTTP Caching 优化网站

HTTP Caching 用好了,可以极大的减小服务器负载和减少网络带宽。十分有必要深入了解下 http 的 caching 协议。HTTP请求/响应过程1、用 Last-Modified 头在第一次请求的响应头返回 Last-Modified 内容,时间格式如:Wed, 22 Jul 2009 0 ······
阅读全文

laravel扩展包

laravel-agent 是一个为 Laravel 定制的客户端识别扩展包, 基于 Mobile Detect , 提供了非常优雅的接口。安装使用 composer 安装:composer require jenssegers/agent修改 app/config/app.php 添加 Servi ······
阅读全文

开发工具phpstorm & webstorm常用技巧

svn配置 : http://js250.com/home/?p=35   更多介绍:http://my.oschina.net/maomi/blog/137807#OSC_h2_7 Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具 1.本地修改记录:在项目名 ······
阅读全文

PHP函数之ignore_user_abort()

ignore_user_abort()函数可设置与客户机断开是否会终止脚本的执行。 待更新    ~ ······
阅读全文

phpstorm主题

把xml主题(xxx)文件放到C:/Users/USERNAME/.WebIde10/config/colors目录下。 重启phpstorm phpstorm中打开File > Settings > Editor > Colors & Fonts,选择相应主题(xxx) 主题: ······
阅读全文

ThinkPHP M方法实现自动验证与自动填充

通常,我们会将自动验证与自动填充规则写入模型类里,然后再用 D 方法实例化模型类来实现对表单的自动验证与自动填充功能。由于 M 方法只是实例化基础模型类而不会去实现模型类里定义的逻辑,因此 M 方法一般情况下是无法完成自动验证与自动填充的。ThinkPHP 提供的 setProperty 方法,可以 ······
阅读全文

user agent

User Agent中文名为用户代理,简称UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。一些网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正 ······
阅读全文

取消订单后减子商品和父商品库存

需求说明:父商品即总的包括各种规格颜色,子商品是具体规格具体颜色的商品解决问题:点击取消订单把下订单时减的库存数量再新增过来$goodsMod->edit('goods_id = ' . $k, 'goods18 = goods18 +' . $v);//修改对 ······
阅读全文

PHP 开发者该知道的 5 个 Composer 小技巧

Composer是新一代的PHP依赖管理工具。其介绍和基本用法可以看这篇《Composer PHP依赖管理的新时代》。本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方便。1. 仅更新单个库只想更新某个特定的库,不想更新它的所有依赖,很简单:composer update foo ······
阅读全文

php获取用户真实ip

获取客户端ip其实不是个简单的事儿,因为存在IP欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,不能百分百准确。但是我们还是可以尽量写一些比较完善的获取客户端真正ip方法。使用php获取IP的方法能有很多,我简单给个例子:1、没有使用代理的情况REMOTE_ADDR = 客户端IPHTTP ······
阅读全文

restfull-03理解篇

我理解你的问题应该是“把传统的PHP Web接口改成符合RESTful风格的Web接口有什么用处?”其实,这里最好用“好处”这个词来代替“用处”,因为传统的Web接口实现方式同样能够实现业务需要(所以这不是一个必须的事情,需要自己根据业务需求综合判断是否需要采用),而改用“RESTful风格”会有一 ······
阅读全文

基于PHP的cURL

cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。PHP也支持 cURL 库。本文将介绍 cURL 的一些高级特性,以及在PHP中如何运用它。为什么要用 cURL?是的,我们可以通过其他办法获取网页内容。大多数时候,我因为想偷懒,都直接用简单 ······
阅读全文

MySQL通过存储过程创建测试数据

先看过程,问题后面会解答。连接mysql数据库mysql -u root -p #提示输入密码,无密码直接enter使用test数据库use test;创建要插入的数据表CourseDROP TABLE IF EXISTS test;  CREATE TABLE test(      ID I ······
阅读全文

MySQL数据库管理员DBA面试资料

本文起源于有同学留言回复说想了解下MySQL DBA面试时可能涉及到的知识要点,那我们今天就来大概谈谈吧。MySQL DBA职位最近几年特别热门,不少朋友让我帮忙推荐什么的,也有很多公司找不到合适的DBA。原因很简单,优秀的人才要么被大公司圈起来了,要么被创业公司高薪挖走,如果你既不是大公司,又不能 ······
阅读全文

如何解决PHP里大量数据循环时内存耗尽的问题

在开发一个PHP程序时我们有时会遇到了下面的错误:    代码如下:PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted错误信息显示允许的最大内存已经耗尽。遇到这样的错误起初让我很诧异,但转眼一想,也不奇怪,因为我正在 ······
阅读全文

MySQL的语句执行顺序

MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。如果没有在语句中指定某一个子句,那么将会跳过 ······
阅读全文

YII通过CViewAction渲染静态页

在web应用中,我们经产更需要显示静态页,如“关于我们”等,这些文件通常是静态页,通常有如下几种处理方法: 1.把独立的html文件存在Web服务器能直接访问的目录下。这种方案的缺点是很难维护网页布局以及和动态页的连接. 2.可以自己写action赖渲染view文件处理每一个静态页,这样 ······
阅读全文

php.ini 文件上传相关配置

post_max_size = 8M; 允许的POST数据最大字节长度。此设定也影响到文件上传。; 如果POST数据超出限制,那么$_POST和$_FILES将会为空。; 要上传大文件,该值必须大于upload_max_filesize指令的值。; 如果启用了内存限制,那么该值应当小于memory_ ······
阅读全文

PHP页面中的当前符号表-获取当前页面所有变量

符号表是指当前PHP页面中,所有变量名称的集合。 可以用函数get_defined_vars()获取当前页面已定义所有变量列表的多维数组。 php中extract()函数可把数组中的变量导入到当前的符号表中,例: function get($parm){ ······
阅读全文

wordpress数据库远程和本地互导问题

http://www.cnblogs.com/happyhotty/articles/2531316.html 第一.从程序本身备份数据库到本地.要安装插件! 第二.从phpmyadmin导出数据库到本地! 第三.如数据库用户名和域名不变则直接导入即可! 第四.如数据库用户名等资料变动. ······
阅读全文

多进程同时写入同一文件

使用PHP函数:flock(file,lock,block);flock()中file参数必须是已经打开的文件的指针。要取得共享锁定(读取的程序),将 lock 设为 LOCK_SH; 要取得独占锁定(写入的程序),将 lock 设为 LOCK_EX;要释放锁定(无论共享或独占),将 lock 设为 ······
阅读全文

输出文章内容不解析html,原样输出html标签

文章内容有时要输入显示一些html如样式、脚本、html标签等,浏览器渲染读取出保存的含有html标签的内容时会把它当成页面内的标签处理,造成无法显示标签而变成了页面的构成元素标签。解决办法是页面输出内容时,把内容用htmlspecialchars()函数处理后在输出到界面。关于htmlspecia ······
阅读全文

PHP判断是否是ajax提交

根据请求有时需要判断是否是ajax请求来决定输出数据的格式,如ajax常用数据格式是json。 发送ajax请求的时,我们可以通过XMLHttpRequest这个对象,创建自定义的header头信息。 而在jquery框架中,通过$.ajax, $.get,或者$.po ······
阅读全文

Yii::app()对象实例

YII::app()是一个类(CWebApplication)的实例(对象),继承了CWebApplication对象的属性和方法. 例如CWebApplication里边有一个方法getLayoutPath()  获得布局路径,则我们可以这样: echo Yii::app()->getLayou ······
阅读全文

PHP中的类作用与用法,通过类创建新对象

类就是很多方法和属性的集合。 这些方法是你在程序中经常会用到的一些逻辑或算法。 将他们包进类里面,可以提升程序的效率,减少代码的重复。 比如你有一个类文件 web_common.class.php ,里面有一个类common,那么当你的程序需要用到此类里的方法时, 首先要做的是将类文件 ······
阅读全文

PHP接口与接口类interface

资料 接口,就是一个方法function,或者一个类class。写好后,别人通过你约定的协议来访问你的这个方法。例如: 用php给别的网站写接口,以指定格式(JSON或XML)返回他们要的数据: 写一个php文件,对方POST相应的参数过来(一般我们需要校验用户信 ······
阅读全文

php类之抽象类、抽象方法

用abstract关键字修饰的类就叫抽象类,抽象类不能被实例化(我们通过一个子类继承该抽象类后,来实例化子类)。用abstract关键字修饰的方法叫抽象方法,抽象方法只有方法声明,没有方法的实现内容。 单独设置抽象类没有实在意义,抽象类内要声明抽象方法。抽象方法没有{},只有部分如 public f ······
阅读全文

PHP一年中周的计算与处理

一年可能是52周或者53周,看星期四在哪一周,一年的开始第一周也是看第一个周4在哪一年。如2015年1月1日为周四则2015年第一周即从2014年的最后一个周一到2015年的第一个周日,即:2014.12.29-2015.01.04。2016年的1月1日为周五,则2016年的第一周是2016.01. ······
阅读全文

php.ini中最好禁止的一些函数disable_function

phpinfo() 功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。 危险等级:中 passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec()。 危险等级:高 exec() 功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。 ······
阅读全文

PHP获取当前时间、时间戳的各种格式写法汇总[日期时间]

                                       今天写下php中,如何通过各种方法 获取当前系统时间、时间戳,并备注各种格式的含义,可灵活变通。1、获取当前时间方法date()很简单,这就是获取时间的方法,格式为:date($format, $timestamp),fo ······
阅读全文

需要禁用的PHP危险函数

在正式服务器上,为了安全,需要禁用一批函数,以下是需要禁用的函数。phpinfo()功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。危险等级:中passthru()功能描述:允许执行一个外部程序并回显输出,类似于 exec()。危险等级:高exec()功能描述:允许执行一个外部程 ······
阅读全文

高并发 php uniqid 不重复唯一标识符生成方案

PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重复,最好的方案是结合md5函数来生成唯一ID。PHP uniqid() 生成不重复唯一标识方法一这种方法会产生大量的重 ······
阅读全文

mysql操作时出现的符号->

->是指在跨行输入一条语句,尽管按下回车把这条语句分为多行.一旦语句结束在最后加分好" ; ",MySQL就会执行这条语句.                                 ······
阅读全文

管道符号,是unix一个很强大的功能,符号为一条竖线:"|"

管道符号,是unix一个很强大的功能,符号为一条竖线:"|"。用法: command 1 | command 2 作用:功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2,例如:ls -s|sort -nr-s 是file size,-n是numeric ······
阅读全文

Smarty模版配置

smarty使用口诀(五配置两方法):config配置文件smarty.inc.php(自己命名)内容:return array(     'left_delimiter' => '{', //指定左标签     'right_delimiter' ······
阅读全文

PHP与JavaScript中数据类型的异同

字符串“0”,转为布尔型后,是true还是false (function(){ var strZero="0"; if(strZero){//字符串“0”转布尔值为true console.log(strZ ······
阅读全文

web安全之token使用

Token(令牌)是一个用户自定义的任意字符串,一般由MD5加密,一般黑客或软件无法猜测出来。如防止csrf攻击:生成的Token保存在服务器端如session中,然后客户端表单隐藏域增加该token。它可以让服务器确认提交的请求是来自安全的客户端还是恶意的第三方。Token一般用在两个地方——防 ······
阅读全文

Smarty模版手册实例

获取数组当前元素索引/循环次数从0开始:{foreach from=$data key=key item=value name=foo}     {$smarty.foreach.foo.index} {/foreach}会根据$data内数组元素数量输出索引0,1,2,3,4.....从1开始 ······
阅读全文

RESTfull/rest-01介绍篇

RREST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。表述性状态转移是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意 ······
阅读全文

MySQL索引类型

索引概述:  什么是索引? 索引(Index)是帮助MySQL高效获取数据的数据结构,这是一种比较官方的说法。它的存在形式是文件。索引能够帮助我们快速定位数据。  为什么使用索引? 索引可以让mysql高效运行,可以大大提高mysql的查询(包括排序,分组)效率;数据约束(唯一索引的建立)  ······
阅读全文

PHP配置文件php.ini文件解析

max_execution_time(解析器解析脚本的最大执行时间,当解析超出此时间时,脚本返回一个致命的错误) 官方解释:设置脚本被解析器中止之前允许的最大执行时间,单位秒。 有助于防止写得不好的脚本占尽服务器资源。 默认设置为 30。 ······
阅读全文

网站安全-XSS

XSS(Cross Site Scripting),意为跨网站脚本攻击,为了和样式表css(Cascading Style Sheet)区别,缩写为XSS。XSS 对比CSRFXSS 是实现 CSRF 的诸多途径中的一条,但绝对不是唯一的一条。一般习惯上把通过 XSS 来实现的 CSRF 称为 XS ······
阅读全文

笛卡尔积

笛卡尔积在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2) ······
阅读全文

大型互联网架构概述

本文旨在简单介绍大型互联网的架构和核心组件实现原理。 理论上讲,从安装配置,最佳实践以及源码来剖析各个组件,这个自然是极好的。由于笔者时间以及知识有限,有很多知识没有在工作中亲自实践的机会。所以有些地方语焉不详,还请大家多多指教。大型互联网架构解决问题的通用思路是将分而治之(divide-and-c ······
阅读全文

MySQL基本常见操作参考

基本的sql语句 选择:select * from table where 范围 插入:insert into table(field1,field2) values(value1,value2) 删除:delete from table where 范围 更新:update tabl ······
阅读全文

PHP图片验证码类库

验证码类文件ValidateCode.class.php//验证码类 class ValidateCode {     private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';    //随机 ······
阅读全文

php之转义字符

间隔字符 echo "唐\t唐"; //请求服务器端该页面,客户端浏览器将输出“唐 唐”---中间的空格即是\t ······
阅读全文

PHP实现即时将结果输出到浏览器

web开发中有没有碰到需要适时的将结果输出到浏览器页面而不刷新整个页面的需求呢?当你在处理一个过程需要耗时很长,但你又需要适时的知道程序当前的处理状况的时候,该怎么办呢?下面就分享一下如何使用php及时的输出当前结果到浏览器而不刷新整个页面的效果吧。下面以一个简单的例子来说明这个问题。首先来看一段代 ······
阅读全文

foreach遍历$_POST超全局数组变量

EX:                                        结果会依次输出所有name的值; 操作查询数据库返回数据:mysql_fetch_array(); 只读取一行,读取出来的数组为 array(     [0]=>本行第一列数据     ······
阅读全文

MySQL怎么计算打开文件数

有时候,我们会遇到类似下面的报错信息:.....[ERROR] /usr/local/mysql/bin/mysqld: Can't open file: './yejr/access.frm' (errno: 24)[ERROR] /usr/local/mysql/bin/ ······
阅读全文

网站安全—防止SQL注入

php函数addslashes()防sql注入addslashes() 函数在指定的预定义字符前添加反斜杠。这些预定义字符是:单引号 (')双引号 (")反斜杠 (\)NULL 将这些预定义字符添加反斜杠转以后才插入数据库或执行数据库查询。简单例子:$test="'123"; ······
阅读全文

mysql 日期操作 增减天数、时间转换、时间戳

MySQL datediff(date1,date2):两个日期相减 date1 - date2,返回天数。select datediff('2008-08-08', '2008-08-01'); -- 7select datediff('2008-08-01 ······
阅读全文

页面加载优化

分析tmall详情页: 头部左侧图片下面缩略图目前仍加载大图,改为加载小图,默认加载首先显示的第一张大图和所有缩略图,其它大图延后加载(在头部信息加载完在加载)。装修的商品详情部分内大图较多,内容较多,在详情页头部部分(第一屏)加载完成后(通过ajax请求)再去请求加载商品详情部分。详情页 ······
阅读全文

MySQL索引结构btree索引和hash索引的区别

Mysql索引主要有两种结构:B+树和hash.hash:hsah索引在mysql比较少用,他以把数据的索引以hash形式组织起来,因此当查找某一条记录的时候,速度非常快.当时因为是hash结构,每个键只对应一个值,而且是散列的方式分布.所以他并不支持范围查找和排序等功能.B+树:b+tree是my ······
阅读全文

PHP慢脚本日志和Mysql的慢查询日志、MySQL日志

1、PHP慢脚本日志间歇性的502,是后端 PHP-FPM 不可用造成的,间歇性的502一般认为是由于 PHP-FPM 进程重启造成的。在 PHP-FPM 的子进程数目超过的配置中的数量时候,会出现间歇性的502错误,如果在配置中设置了max_requests的话,超过数量也会出现502错误,而ma ······
阅读全文

PHP调试用函数

输出数据: 需要精确调试的时候用 var_dump();一般查看的时候用 print_r();另外 , echo不能显示数组 其余2个可以。 var_dump() 能打印出类型 print_r() 只能打出值 echo() 是正 ······
阅读全文

PHP数组操作思维

把一维数组内元素拆分成N个二维数组,二维数组内元素依次排列 $oranginal=[1,2,3,4,5,6,7,8] $generationArray= array(); for($i=0;$i ······
阅读全文

wordpress获取最近修改文章

通过在主题文件function.php文件内定义函数获取近期修改文章: // modified_post function recently_updated_posts($num=10,$days=7) { if( !$recently_updated_posts = ge ······
阅读全文

用visio画数据库模型图

下载visio软件,安装。 打开viso,在预设的画图方案里面找到数据库-》数据库模型图。双击打开。 进入界面,选择左边实体(即建表)拖到邮编区域,在下方类别区域填入定义、列等即可 更多 更详细 ······
阅读全文

初学php常见问题与解决办法

【1】页面之间无法传递变量 get,post,session 在最新的php 版本中自动全局变量是关闭 的,所以要从上一页面取得提交过来得变量要使用 $_GET['foo'],$_POST['foo'],$_SESSION['foo']来得到。 ······
阅读全文

PHP MySQL 数据库操作实例与MySQL常用

PHP+MySQL基础之查询输出数据库内容$con=mysql_connect("localhost","root","");//链接数服务器数据库 $db_selected=mysql_select_db("wp",$con);//链接数据库 mysql_query("set NAMES ······
阅读全文

PHP技术常用面试题

一.用PHP打印出前一天的时间格式是:YYYY-MM-DD HH:II:SSecho date(“Y-m-d H:i:s”, time()-24*3600); 二.echo(),print(),print_ r()的区别:echo是PHP语句, print和print_ r是函数,语句没有返回值,函 ······
阅读全文

http_build_query() 生成查询字符串和 parse_url()解析URL为一个关联数组

http_build_query() 和 parse_url()http_build_query()用来生成查询串(使用给出的关联(或下标)数组生成一个 url-encoded 请求字符串),需要php5以上版本。举个例子:$query=array(     'id'=>1,   ······
阅读全文

魔术方法

PHP将所有以__(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,不要以__为前缀。PHP中得魔术方法有:__contruct() //构造函数,实例化类时即执行 __destruct()//析构函数,某个对象的所有引用都被删除或者当对象被显式销毁时执行 __call() //方法 ······
阅读全文

MVC

MVC是MODEL_VIEW_CONTROL的缩写。 MODEL_VIEW_CONTROL是软件设计的典型结构。 在这种设计结构下,一个应用被分为三个部分:model,view和controller,每个部分负责不同的功能。model是指应用程序的数据,以及对这些数据的操作;view是指用户界面 ······
阅读全文

PHP之$this

 例子: $this 的含义是表示 实例化后的具体对象!同javascript 一般是先声明一个类,然后用这个类去实例化对象!创建了两个User对象。分别是 $user1 和   $user2 。当我调用 $user1->getName()的时候。   User类中的代码 echo $this->n ······
阅读全文

PHP函数之$_SERVER

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。 可print_r($_SERVER) 来查看输出的数据值  。   例:判断页面是否是通过a标签连接过来还是直接在地址 ······
阅读全文

phpmyadmin 配置

E:\wamp\alias\phpmyadmin.conf---配置默认访问路径/为localhost#Alias /phpmyadmin "e:/wamp/apps/phpmyadmin4.0.4/" Alias / "e:/wamp/apps/phpmyadmin4.0.4/" 会和其他网站配 ······
阅读全文

浅解用PHP实现MVC

传统的面相过程式的开发方式在处理中型以上的应用时,就开始显得力不从心。即便我们能够快速的完成需求,但是在需求发生变更后或者进行后期维护的时候,我们会深深地陷入我们早期搭建的陷阱中。所以,使用面向对象的方式来实现MVC模式,将为我们梳理程序的架构提供一个清晰的思路。什么是MVC?关于MVC的定义和解释 ······
阅读全文

wordpress 运行流程

wordpress不象一些普通的面向过程,也不是MVC,是自己的一套程序结构。 在模板前面的程序基本上都是公共处理,但是把post的查询的逻辑处理放在公共处理中。因为整个wp的页面基本上都有查询post。 其它的逻辑操作基本上是在模板中调用的(比如评论),所以它的模板并不是单纯的V,可以算是C+ ······
阅读全文

wordpress数据库分析

WordPress仅仅用了10 个表:wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_term_relationships, wp_term_taxonomy, wp_terms, wp_usermeta, wp_users按 ······
阅读全文

PHP 的命令行模式

以下是 PHP 二进制文件(即 php.exe 程序)提供的命令行模式的选项参数,您随时可以通过 PHP -h 命令来查询这些参数。Usage: php [options] [-f]  [args...]        php [options] -r  [args...]         ······
阅读全文

jQuery.form.js插件实现表单通过ajax提交

jQuery Form Plugin可以将HTML形式提交的表单升级成采用AJAX技术提交的表单,这里说下在图片上传中用到的此插件。 通过type=file的input按钮点击上传图片,用此插件可以获取回调来的图片路径。 js依赖关系
阅读全文

PHP安全概述

互联网项目里边,SQL注入漏洞、XSS漏洞和猜测URL攻击这三个漏洞可谓历史悠久,然而直到今天还有人不断中枪,也真是微醺。这几个漏洞说大也大,说小也小。说大是说这些漏洞危害大,会导致数据层面的安全问题;说小是从技术层面上讲都是未对外部输入做处理导致的,想要做针对性地防范很简单。下面简单看看这些漏洞的 ······
阅读全文

网站流程

网站是基于B\S架构,即浏览器---服务端架构,就程序来讲,可笼统划分为前端程序和服务器端程序。就项目来讲可能需要由以下部分构成:1.需求分析2.基本架构设计与定型3.数据库设计4.代码实现 1)前端        (1)页面框架(上下、左右、上左右、上左右下等结构)        (2)页面美化( ······
阅读全文

php面试

数据库中的事务是什么?答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成, 事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。 ······
阅读全文

关联查询

关联查询INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 左边表中的行在 右边表中没有匹配,就不会列出这些行。left\right join是外部连接,inner join是内连接。full join:外连接,返回两个表中的行:left join + right joincross ······
阅读全文

wordpress创建页面模版

新建页面可以从右侧属性栏里选择要用的页面模版,当然我们要先有我们的模版。创建模版很简单,只需在当前主题文件夹下新建以page-为前缀的php文件即可。例如新建模版文件page-about.php:在新建的page-about.php文件内开始行输入模版生命-即注释文本,如下,则在新建页面右侧属性模版 ······
阅读全文

PHP读取文件内内容、读取html内内容给变量

php把信息保存在文档(text/html/doc)等文件内,读取出内容赋值给变量供使用: $file="test.html";//本级目录 if(is_file($file)){ $fhandle=fopen($file,"r"); $conte ······
阅读全文

网站安全—PHP命令注入攻击

PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一,国内著名的Web应用程序Discuz!、DedeCMS等都曾经存在过该类型漏洞。本文描述了常见的PHP命令注入攻击漏洞存在形式和利用方法,结合漏洞实例进行分析和漏洞利用,并针对如何防范PHP命令注入攻击漏洞给出了可行的方法和建议。Comma ······
阅读全文

提高php编程效率的53个小知识点

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中 搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正 的函数,故把函数加上了双引号)。 1、如果能将类的方法定义成stat ······
阅读全文

MySQL表类型与数据字段类型

表类型  MySQL的数据表类型很多,其中比较重要的是MyISAM,InnoDB这两种。  这两种类型各有优缺点,需要根据实际情况选择适合的,MySQL支持对不同的表设置不同的类型。下面做个对比:  MyISAM表类型是一种比较成熟稳定的表类型,但是MyISAM对一些功能不支持。 MyISAM In ······
阅读全文

is_callable

关于PHP中的is_callable()函数,手册中是这样说的“检测参数是否为合法的可调用结构”,但是没有很好的演示代码,所以今天我在我的WEB开发笔记上发一下演示代码,希望能给大家对is_callable()的理解上有一些帮助。演示代码如下: ······
阅读全文

wordpress安装的可选主题不显示

问题:wordpress安装的可选主题不显示(阿里云服务器-LNMP生产环境)如打开php.ini配置文件中display_errors = On则会出现报错信息:Warning: scandir() has been disabled for security reasons in /hom ······
阅读全文

数据库性能优化之冗余字段的作用

在设计数据库时,某一字段属于一个表,但它又同时出现在另一个或多个表,且完全等同于它在其本来所属表的意义表示,那么这个字段就是一个冗余字段。——以上是我自己给出的定义冗余字段的存在到底是好还是坏呢?这是一个不好说的问题。可能在有人看来,这是一个很蹩脚的数据库设计。因为在数据库设计领域,有一个被大家奉为 ······
阅读全文

php常用的header头

常用header头header('HTTP/1.1 200 OK');  // ok 正常访问 header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不存在 header('HTTP/1.1 301 Moved Perm ······
阅读全文

安装MySQL时默认安装的数据库

新装的mysql里面有两个数据库:information_schema 和 mysql  。他们是干么用的?可以删除么?当然是不可以删除的。1.information schema 是mysql系统用的所有字典信息,包括数据库系统有什么库,有什么表,有什么字典,有什么存储过程等所有对象信息和进程访问 ······
阅读全文

MySQL函数-时间处理、where in排序

时间处理函数UNIX_TIMESTAMP(字段值):返回UNIX时间戳。FROM_UNIXTIME(时间戳格式字段值,format格式):根据时间戳返回指定时间格式。例:testDatetime字段存储的值为 2012-03-23 20:00:00sql语句查询:SELECT FROM_UNI ······
阅读全文

smarty变量声明与(for)循环

smarty视图内生命变量并使用与循环案例{{assign var=x value=$current_time|date_format:"%Y"}}//控制器传来年份 {{assign var=i value=$smarty.now|date_format:"%Y"}}//获取当前年份 {{se ······
阅读全文

mysql字段类型

char比varchar在效率方便要技高一筹,因为它不必维护可变长度.如果明确知道一个文本列有确定的长度,用char更适合. 为什么要用数值类型: 这要归结于数据库的存储空间和效率,为表中每一列选择合适数据类型可减少表的大小.使数据操作更快.将一个数存储为数值类型( ······
阅读全文

PHP+MySQL增(insert)、删(delete)、改(update)、查(select)、实例

数据库基本操作(增删改查)。 连接数据库$con=mysql_connect("localhost","root","");//链接主机、数据库帐号、密码 $db=mysql_select_db("test",$con);链接名为test数据库 if(!$db){       die ······
阅读全文

PHP静态属性和方法

tips:变量名去除其前的声明符号 $ ,即是对象的属性名。 访问对象属性时,要去掉美元符号,注意变量名和访问对象的属性时使用的区别。声明静态变量的方法在变量前加上关键字static,该变量即成为静态变量。 使用静态变量同作用域下(一个函数内)直接使用; 静态变量属于类,而不属于类的实例符号:: 是 ······
阅读全文

主键和自动递增字段

每个表都应有一个主键字段。 主键用于对表中的行进行唯一标识。每个主键值在表中必须是唯一的。此外,主键字段不能为空,这是由于数据库引擎需要一个值来对记录进行定位。主键字段永远要被编入索引。这条规则没有例外。你必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行。 下面的例子把 person ······
阅读全文

命令行操作mysql常用命令

阿里云服务器默认禁止远程连接mysql,开启方法:默认是不能用客户端远程连接的,阿里云提供的help.docx里面做了设置说明,mysql密码默认存放在/alidata/account.log首先登录: #一、MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123 ······
阅读全文

PHP数组操作/处理函数

1.取数组第一个元素,使用$array[0]呢?还是reset($array)分析:如果仅限于数值数组,对于一个大小为1的数组,将返回$array[0]。不过如果数组不是从0开始索引,$array[0]则为空。利用reset()将会重置数组的内部指针,这个函数将会返回第一个数组元素的值。2.arra ······
阅读全文

PHP字符串操作/处理函数

字符串剪切函数/截取字符串函数 mb_substr(str,start,length,encoding); 参数: str为要截取的源字符串; start为截取字符串的起始索引位置; length为截取字符串的长度; encoding为截取字符串用的编码,默认使用内部字符 ······
阅读全文

php基础实践代码

PHP底层原装,数据库查询基础操作,连接数据库,取数据库库中数据。 header("Content-type:text/html; charset=utf-8");//设定字符编码,header头—- $con=mysql_connect("localhost","roo ······
阅读全文

PHP强大的日期时间操作函数date()与mktime()、strtotime()等

date()函数使用获取当天零点的时间戳, 可以按以下方法获得:$y = date("Y");//获取当天的年份 $m = date("m");//获取当天的月份 $d = date("d");//获取当天的号数 $w = date("W");//获取当天属于今年的第几周 //将今天开始的年 ······
阅读全文

数据库数据处理/数据库实例

首先说说,数据库是做什么?数据库是用来长久存储数据的,而我们大家都知道内存只能临时存储,磁盘等才能真正存储数据.那你说数据库会放那里呢?肯定是存放在磁盘上,其实数据库就是磁盘上的一个文件。从上面我们得出结论:数据库==磁盘上的文件.         既然数据库可以看成磁盘上文件,我们怎么使用数据库呢 ······
阅读全文

PHP文件上传、图片上传 —$_FILES上传文件

HTML表单部分 filename: PHP脚本部分if ($_FILES["file"]["error"] > 0) {     echo "ERROR:" . $_FILES["file"]["error"] . ""; //error见下面块级注释 } else {      ······
阅读全文

php引用符号(&)详解

php的引用(就是在变量或者函数、对象等前面加上&符号),意思是不同的变量名访问同一个变量内容。   与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址。  变量的引用  PHP 的引用允许你用两个变量来指向同一个内容  函数的传址调用  传址调用我就不多说了 下面 ······
阅读全文

网站安全—客户端脚本植入

客户端脚本植入(Script Insertion),是指将可以执行的脚本插入到表单、图片、动画或超链接文字等对象内。当用户打开这些对象后,攻击者所植入的脚本就会被执行,进而开始攻击。可以被用作脚本植入的HTML标签一般包括以下几种:1、标签标记的javascript和vbscript等页面脚本程序。 ······
阅读全文

语言构造器与可变函数

“语言构造器”,英文是”language construct”,是语言构成的意思,翻译成语言构造器难免有点令人困惑。PHP里有echo、print、die、require等几个特殊的关键字,虽然它们用起来像是函数,但实际上更类似于if、while这样控制语句,而不是一个函数。也就是说,当解释器遇到: ······
阅读全文

php异常处理try{ }catch{ }

异常(Exception)处理用于在指定的错误发生时改变脚本的正常流程,是 PHP5 中的一个新的重要特性。异常处理是一种可扩展、易维护的错误处理统一机制,并提供了一种新的面向对象的错误处理方式。 实例分析//try分支,在这里进行代码测试,如有问题就抛出一个异常,如果没有问题就继续执行 try  ······
阅读全文