SS'Blog - SS'Blog

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

HAPPY NEW YEAR !

Laravel
StudyScript.com

php配置php-fpm启动参数及配置详解

约定几个目录/usr/local/php/sbin/php-fpm/usr/local/php/etc/php-fpm.conf/usr/local/php/etc/php.ini一,php-fpm的启动参数#测试php-fpm配置/usr/local/php/sbin/php-fpm -t/usr ······
阅读全文

PHP处理密码的几种方式

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

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

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

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

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

laravel 单元测试

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

MySQL用户管理及权限分配

1.新建用户//登录MySQL>mysql -u root -p >密码//创建用户mysql> insert into mysql.user(Host,User,Password) values(‘localhost’,'tang’,password(‘123456’));//刷新系统权 ······
阅读全文

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

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

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

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

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

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

高并发量网站解决方案

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

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目录进行保护,使得文件只能被其所有这或 超级用户(根 ······
阅读全文

使用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)  ······
阅读全文

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 ······
阅读全文

用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 ······
阅读全文

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 ······
阅读全文

nginx服务器究竟是怎么执行php项目

其实下面几个概念理解了,本文所要解释的问题你也就理解了。 CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI本身可以看成是一种协议标准,它可以用任何一种语言编写具 ······
阅读全文

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,...应用实 ······
阅读全文

CentOS-nginx-LNMP环境安装fileinfo模块

网站报错信息:Class 'finfo' not found。找资料说是要开启php_fileinfo.dll模块,本地是apache环境,开启后是好了,但线上是nginx环境,开启php_fileinfo.dll模块就不管用了,linux下是.so而不是.dll。以下是Linux下 ······
阅读全文

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

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

理解OAuth 2.0

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。原理用户访问App,App访问Authorization Server请求权限,Authorization Server得到用户同意后,返回token,App通过这个token向Auth ······
阅读全文

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 ······
阅读全文

MVC模式

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

利用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 ······
阅读全文

第三方登录(微博、QQ)

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

ActiveForm 表单组件的使用方法

如果你使用Nginx web server,你可能在访问你网站的时候出现了504 Gateway Time-out错误,这个错误代码很常见,这可能是因为超过了PHP的最大执行时间的限制或者是FastCGI读超时。这篇文章将向大家展示如何解决Nginx的504 gateway timeout的问题。一 ······
阅读全文

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 ······
阅读全文

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

多维数组实现类似数据库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 ······
阅读全文

15个nosql数据库

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

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 ······
阅读全文

Ajax跨域请求Nginx 反向代理实现跨域访问、nginx 授权资源跨站访问

什么是跨域跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。所谓同源是指,域名,协议,端口相同。浏览器执行javascript脚本时,会检查这个脚本属于那个页面,如果不是同源页面,就不会被执行。同源策略的目的,是防止黑客做一些做奸犯 ······
阅读全文

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外键(Foreign Key)的使用

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

跨域请求-getJSON

一、jsonp跨域 ajax请求不同域名下服务器端PHP数据示例: js部分$.ajax({     type : "post",     url : "ajax.php",     dataType : "jsonp",     jsonp: "callback",//传递给请求处 ······
阅读全文

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

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

利用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 ······
阅读全文

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操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。如果没有在语句中指定某一个子句,那么将会跳过 ······
阅读全文

php.ini 文件上传相关配置

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

10段PHP常用代码

1、使用PHP Mail函数发送Email$to = "viralpatel.net@gmail.com";$subject = "VIRALPATEL.net";$body = "Body of your message here you can use HTML too. e.g. ﹤br﹥ ﹤ ······
阅读全文

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' ······
阅读全文

web安全之token使用

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

Linux下修改MySQL用户(root)密码、启动、停止、重启MySQL服务

启动、停止、重启MySQL服务启动、停止、重启 MySQL 是每个拥有独立主机的必须要撑握的操作,下面为大家简单介绍一下操作方法:一、启动方式   使用 service 启动:service mysqld start使用 mysqld 脚本启动:/etc/inint.d/mysqld start使用 ······
阅读全文

网站安全-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) ······
阅读全文

PHP图片验证码类库

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

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 ······
阅读全文

安装AppServ的时候,安装到Mysql service进度条就停了

今天安装的时候装到了一半在installing mysql service的竟然停住了,打开任务管理器把安装程序关了,发现有个ns**.tmp的进程,估计是AppServ安装程序执行过程中的临时文件,于是一起关了.然后又重新装了一次,还是同样的问题,于是上网搜索了一下,结果只发现了两个网页有人问这个 ······
阅读全文

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.ini配置来让phpmyadmin允许上传大文件(MySQL数据库)

通过phpmyadmin导入mysql数据库,当sql文件较大时则提示上传不成功,以下为解决办法。修改php.ini配置文件,允许上传的文件大小改大。 配置好PHP运行环境后,经常要修改配置文件php.ini来改动默认的配置,一下是常用的配置文件修改(配置文件修改后要重启运行环境才会生效) ······
阅读全文

初学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标签连接过来还是直接在地址 ······
阅读全文

浅解用PHP实现MVC

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

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攻击这三个漏洞可谓历史悠久,然而直到今天还有人不断中枪,也真是微醺。这几个漏洞说大也大,说小也小。说大是说这些漏洞危害大,会导致数据层面的安全问题;说小是从技术层面上讲都是未对外部输入做处理导致的,想要做针对性地防范很简单。下面简单看看这些漏洞的 ······
阅读全文

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命令注入攻击

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()的理解上有一些帮助。演示代码如下: ······
阅读全文

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 ······
阅读全文

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强大的日期时间操作函数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  ······
阅读全文