PHP
文章平均质量分 58
同学小江
书山有路勤为径,学海无涯苦作舟!
展开
-
PHP正则验证字符串是否为数字的常用正则
if(preg_match("/^[0-9]*$/",$str)) { echo('是数字'); } else { echo('不是数字'); }附一些常用的正则运算:验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*...原创 2022-02-24 14:44:33 · 802 阅读 · 0 评论 -
判断年龄
<?php function birthday($birthday){ $age = strtotime($birthday); if ($age === false) { return false; } list($y1, $m1, $d1) = explode("-", date("Y-m-d", $age)); $now = strtotime("now"); list($y2, $m2, $d2) = expl.原创 2021-05-13 15:25:32 · 127 阅读 · 0 评论 -
PHP获取本月,上月,本周等等的开始时间和结束时间
if ($altime == "jinri") { $t = time(); $first = date('Y-m-d H:i:s', mktime(0, 0, 0, date("m", $t), date("d", $t), date("Y", $t))); // 当天开始时间 $last = date('Y-m-d H:i:s', mktime(23, 59, 59, date("m", $t), date("d", $t), date("Y", $t..原创 2020-08-02 15:31:30 · 1711 阅读 · 0 评论 -
post和get的区别
前言这个问题几乎面试的时候都会问到,是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎。关于get和post如果你有条件上百度的话,至少有200百万条结果,每个人都有每个人的思考,当然,这篇也是我的思考,如果有些结论有错误,希望能够喷起来。在批评中不断改进,与诸君共勉一句话:若批评无意义,则赞美无意义。文章目录前言01 特...转载 2019-12-24 11:57:58 · 119 阅读 · 0 评论 -
PHP获取XML属性值
<?phpheader("Content-Type:text/html;charset=utf-8"); //设置编码/* 创建XML格式的字符串 */$str = <<<XML<?xml version='1.0' encoding='gb2312'?><object name='commodity'> <boo...原创 2019-12-20 16:56:51 · 878 阅读 · 0 评论 -
PJAX的实现与应用
一、前言web发展经历了一个漫长的周期,最开始很多人认为Javascript这们语言是前端开发的累赘,是个鸡肋,那个时候人们还享受着从一个a链接蹦到另一个页面的web神奇魔术。后来随着JavaScript的不断更新换代,他的功能不仅仅是为网页添加一点特效了,语言本身的加强以及对DOM操作能力的提升让他在前端大放光彩。尤其是ajax的出现,让JavaScript以及整个web的发展翻开了崭新的一转载 2017-03-02 16:45:49 · 320 阅读 · 0 评论 -
noSQL数据库redis的安装与测试
首先下载redis软件,官网是下载页面时http://www.redis.io/download,下载完毕后进入下载的目录执行tar zxvf redis-2.6.5.tar.gzcd redis-2.6.5make如果是32位系统,需要执行vi src/.make-settings将OPT=-O2修改为OPT=-O2 -march=i686makecd srcmake转载 2017-03-02 13:43:56 · 184 阅读 · 0 评论 -
PHP结合memcacheq消息队列解决并发问题
在处理业务逻辑时有可能遇到高并发问题,例如商城秒杀、微博评论等。如果不做任何措施可能在高瞬间造成服务器瘫痪,如何解决这个问题呢?队列是个不错的选择。队列(Queue)又称先进先出(First In First Out)利用消息队列可以很好地异步处理数据传送和存储,当你向数据库中写入数据就可采取消息队列来异步插入。只要有并发限制的地方基本都可以使用队列来解决。这里先重点介绍一下memcacheq。转载 2017-03-02 13:45:31 · 193 阅读 · 0 评论 -
NoSQL数据库之mongodb的搭建
首先下载安装包 点此下载,或者到官方站http://www.mongodb.org/downloads ,选择相对应的版本下载,这里以Linux 32-bit (mongodb-linux-i686-2.2.1.tgz)为例介绍安装过程:解压缩:tar zxvf mongodb-linux-i686-2.2.1.tgz移动并重命名(请根据实际情况移动到对应目录)mv mongo转载 2017-03-02 13:46:32 · 211 阅读 · 0 评论 -
使用JS设置cookie和读取cookie的函数
因为cookie存放在客户端所以可以使用js来设置或者读取cookie,如果要读取cookie,前提是没有设置成httponly为true,闲话少说,发函数:/*设置cookie*/function setCookie(name,value,expires){ var exp = new Date(); exp.setTime(exp.getTime() + ex原创 2017-03-02 13:41:22 · 494 阅读 · 0 评论 -
Javascript定时器的使用
在Javascript中有两个函数可以实现"定时器"的功能setTimeout和setInterval,这两个函数的参数是相同的,但是代表的意义有所差别。例如setTimeout('test()',3000);的意思是3000毫秒之后执行函数test()(仅仅执行一次),setInterval('test()',3000); 表示每隔3000毫秒执行一次test()函数。一个是仅仅执行一次一个是不转载 2017-03-02 13:40:39 · 252 阅读 · 0 评论 -
通过js实现单击或双击直接修改内容
代码并不重要,关键是思路,这里简要说一下: 1.展示的时候直接将内容展示在文本框中,文本框的边框设置为0,也可以在设置一下readonly,这样在展示到页面上的时候给人一种普通文本的假象, 实际是显示在边框为0的文本框中,给文本框加单击或者双击事件,触发时将边框更改为1,并且去掉readonly属性,这样就可以修改了,同时也要有失去 焦点事件,失去焦点时通过ajax将相应的数据发送到服务转载 2017-03-02 13:39:14 · 4947 阅读 · 0 评论 -
PHP结合memcacheq消息队列解决并发问题
在处理业务逻辑时有可能遇到高并发问题,例如商城秒杀、微博评论等。如果不做任何措施可能在高瞬间造成服务器瘫痪,如何解决这个问题呢?队列是个不错的选择。队列(Queue)又称先进先出(First In First Out)利用消息队列可以很好地异步处理数据传送和存储,当你向数据库中写入数据就可采取消息队列来异步插入。只要有并发限制的地方基本都可以使用队列来解决。这里先重点介绍一下memcacheq。转载 2017-03-02 11:31:46 · 516 阅读 · 0 评论 -
使用HTMLPurifier防止跨站攻击(XSS)
在编程开发时安全问题是及其重要的,对于用户提交的数据要进行过滤,XSS就是需要重视的一点,先说一下什么是XSS,简单来说就是用户提交数据(例如发表评论,发表日志)时往Web页面里插入恶意javascript代码例如死循环,疯狂的alert,这还不算还可能会修改页面页面上的html元素(例如登录表单的action),这样当用户浏览该页之时,嵌入其中Web里面的代码会被执行,从而达到用户的特殊目的。转载 2017-03-02 10:23:59 · 292 阅读 · 0 评论 -
将IP以整型的方式存储到数据库中
在实现某些功能时有时会用到用户的IP地址,因为IP地址有四段,在保存到MySQL数据库中的时候可能会使用varchar(15)或者char(15),其实还有更好的方式那就是将IP地址转换成整型,这样占用空间更小,查询速度快,同时还方便比较。在数据库设计时要用无符号INT UNSIGNED,否则长度不够。下面给出主要PHP代码:php$ip = '这里是获取到的IP';echo $i转载 2017-03-02 09:42:52 · 1184 阅读 · 0 评论 -
使用rsync+inotify-tools+ssh实现文件实时同步
在某些服务器架构中,会遇到文件同步问题,例如需要做站点镜像备份,同步文件到多个CDN节点等。需要解决的主要有两个问题1.如何实现文件同步问题? 2.何时执行同步操作? 文件同步可以使用rsync+ssh,什么时候自行同步操作呢?可能部分人会想到cron,这个没错,可以实现的,但是确实有点浪费资源,因为cron并不知道文件是否被修改过,只是不停的周期性的执行,如果文件修改后再执行同步操转载 2017-03-02 13:49:28 · 241 阅读 · 0 评论 -
在线支付接口详解
当我们在商城购物时,可能会用到在线支付,你会发现无论你是哪个银行的银行卡接口中都会支持,在做项目开发时,也经常会用到支付接口,我们当然希望支持所有的网银,但这需要我们针对每个银行开发一套接口吗?不是不可以而是没必要,使用第三方的支付接口就可以满足,第三方支付平台已经与各大银行进行签约,网站主只需要在此平台申请一个账号即可支持几乎所有的种类的银行卡信用卡的交易,当然是可能支付少量的手续费的。什么是第转载 2017-03-02 14:01:40 · 558 阅读 · 0 评论 -
php代码优化
1、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的函数(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。 2、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。 3、$ro...转载 2018-09-24 18:01:27 · 663 阅读 · 0 评论 -
yii Excel 导出
//首先 在入口文件 引入Excel类/** 引入excel文件 */require(__DIR__ . '/../../common/excel/PHPExcel.php');/** 引入excel文件 *//** Controller 控制器 */use PHPExcel;use PHPExcel_Writer_Excel5;/** * 生成E原创 2017-03-03 11:47:16 · 365 阅读 · 0 评论 -
php 简单的文件下载
Controller.php:$file_size=filesize('文件路径');$fp=fopen('文件路径','r'); //只读模式打开Header("Content-type:application/octet-stream");Header("Accept-Ranges:bytes");Header("Accept-Length:".$file_size)原创 2017-03-29 10:43:05 · 298 阅读 · 0 评论 -
PHP 优化详解
笔者收集的这些技巧来源较广,完整性不能保证。 由于数量较多,这些优化技巧没有经过测试。请各位看官在使用之前自行测试,毕竟这些技巧是否能派上用场,还是需要由PHP所在的独特环境所决定的。目录索引找到瓶颈(Finding the Bottleneck)缓存 (Caching)编译 vs. 解释(Compiling vs. Interpreting)代码减肥 (Content Reducti转载 2017-03-28 20:00:40 · 184 阅读 · 0 评论 -
使用Memcached实现Session共享
使用Memcached实现Session共享由于Cookie是保存的用户客户端的,安全性存在问题,为保证用户数据的安全性,我们必须使用Session机制来保存用户登录后的一些信息。 如果我们使用LVS对Apache实现负载均衡,就无法保证用户每次都能被分配到同一台Apache Server上,以取到自己的Session,虽然LVS可以加-p参数来保证客户端每次都被分配到同一台Apache转载 2017-03-03 10:05:33 · 544 阅读 · 0 评论 -
购物车设计思路
加入购物车 加入购物车插入到库中一条购物记录,同时插入到缓存中,缓存的key是记录的id 未登录状态 用户未登录时点击加入购物车,将productId ,skuId,buyNum 转换成json存到cookie中(同一件商品不同的skuId视为两个商品,相同的skuId和productId视为相同商品数量累加),用户登录成功的时候接收用户的消息将cookie中的商品信息保存到数据库中,转载 2017-03-03 10:03:53 · 570 阅读 · 0 评论 -
在团队环境中开始使用Git
“分布式”的概念意味着存在许多独立版本的单个项目,每个都有自己的历史。因此,Git是一个工具,可以帮助您与地理分布的团队合作。我们讨论了如何使用Git在上一个教程中管理文件,但目的是熟悉git(add,commit,push)的概念。现在你知道Git在本地是如何工作的,你就可以开始使用更高级的功能了。克隆该过程的第一步是从远程资源获取代码(假设已安装Git)。remote指代存储库或项翻译 2017-03-03 09:55:46 · 1774 阅读 · 0 评论 -
负载均衡----实现配置篇(Nginx)
首先我们来回顾下上篇的概念: 负载均衡 == 分身的能力。既然要有分身的能力嘛,这好办,多弄几台服务器就搞定了。今天我们讲的实例嘛…..我们还是先看图比较好:还是图比较清晰,以下我都用别名称呼: PA : 负载均衡服务器/WEB入口服务器/www.mydomain.com P1 : WEB服务器/分身1/192.168.2.3 P2 : WEB服务器/分身2/转载 2017-02-14 15:51:11 · 295 阅读 · 0 评论 -
使用Snoopy进行模拟登陆、采集
Snoopy是一个使用PHP写的采集类,使用了一下发现功能比较强大,几乎可以模拟浏览器的所有行为,可以实现的功能有:比起使用curl,fsockopen等函数来说方便很多,下面总结一下这个类一些属性与方法的作用。方法: fetch($url) 该方法用于抓取网页内容,类似于file_get_contents submit($posturl,$params,$files)转载 2017-03-02 14:02:44 · 341 阅读 · 0 评论 -
如何查看MySQL中每张表占用的空间大小
如题,找到MySQL中的information_schema表,这张表记录了所有数据库中表的信息,主要字段含义如下:TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录数DATA_LENGTH:数据大小INDEX_LENGTH:索引大小如果需要查询所有数据库占用空间大小只需要执行SQL命令:转载 2017-03-02 09:38:57 · 458 阅读 · 0 评论 -
使用CURL进行模拟登录
在信息采集的时候,要采集的站点可能需要登录,这样使用简单的采集方式(例如file_get_contents)就无法做到了,我们可以利用PHP的CURL扩展库来进行模拟登录,下面给出代码示例: $cookie_path = './'; //设置cookie保存路径 //-----登录要提交的表单数据---------------转载 2017-03-02 09:35:08 · 1477 阅读 · 0 评论 -
PHP使用DES进行加密解密
DES是一种对称加密算法,也就是通过密文和合法的密钥能够将明文还原出来,在程序开发过程中有些接口可能需要获取原始数据,而发送的数据又比较敏感(比如用户的密码等信息),这时可以选择DES加密算法,DES的安全性还算可靠,只要加密密钥不泄露,目前破解的方法只有穷举法进行破解。 再说一下应用时需要注意的地方, 1.DES加密时需要的key(密钥)长度不能超过8位,一般转载 2017-03-01 10:21:12 · 427 阅读 · 0 评论 -
使用ucenter在第三方应用中实现同步注册与登录
首先到康盛官网下载UCenter 1.6.0,点此下载 下载解压安装(安装Ucenter时只需要upload目录中的文件),接下来将advanced目录下的uc_client目录和advanced/examples/目录下的api目录 include目录以及文件config.inc.php拷贝到应用(你的网站)的跟目录,文件如下图:可将config.inc.php中的代码清空,下面会提到如转载 2017-03-01 09:33:17 · 1981 阅读 · 1 评论 -
为PHP增加mongodb扩展模块
Linux下增加扩展模块,首先从http://pecl.php.net/package/mongo下载源码包,这里下载的是mongo-1.2.12.tgz,接下来执行安装步骤tar zxvf mongo-1.2.12.tgzcd mongo-1.2.12准备编译环境/usr/local/webserver/php/bin/phpize./configure --with-php-c转载 2017-03-01 09:31:38 · 414 阅读 · 0 评论 -
Symfony框架的搭建
首先需要到Symfony的官网下载该框架,下载地址 http://symfony.com/download,推荐下载标准版(目前最新是Symfony Standard2.1.4(.tgz)),下面以标准版为例介绍一下如何搭建。 首先确认一下PHP的版本,symfony需要运行在PHP5.3.3或者以上版本,如果您的PHP版本低于PHP5.3.3那么需要重新安装一个高版本的PHP环境。确认转载 2017-03-01 09:29:29 · 649 阅读 · 0 评论 -
使用curl进行模拟登录
<?php$cookie_path = './'; //设置cookie保存路径//-----登录要提交的表单数据---------------$vars['username'] = '张三';$vars['pwd'] = '123';//-------------------------------------$method_post = true;//登录提交的url地址(表单中原创 2017-02-10 11:34:55 · 2105 阅读 · 0 评论 -
Myisam和innodb的区别
Myisam和innodb的区别?MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完整性与并发违规处理机制,后转载 2016-12-23 10:43:36 · 186 阅读 · 0 评论 -
include , require ,include_once 和 require_once的区别
PHP具有快速、可靠、跨平台应用、源代码开放等特点,使得PHP成为最受欢迎的服务器端Script语言之一。我根据自己在工作中体会到的,向大家介绍PHP使用的心得,希望对大家有所帮助。利用PHP的Include files维护你的网站 不管你所开发的网站的规模是大是小,你都应该要认识到重复使用程序代码的重要性,不论你重复使用的是 PHP 程序或者是 HTML 原始码。举个例子来说,网站页转载 2016-12-23 10:40:38 · 2181 阅读 · 0 评论 -
iwebshop 增删改查
<?phpheader("content-type:text/html;charset=utf-8");class Test extends IController{ public $checkRight = array('check' => 'all','uncheck' => array('default','admin_repwd','admin_repwd_act','na原创 2016-12-23 10:27:53 · 1237 阅读 · 0 评论 -
mysql sql语句大全
1、说明:创建数据库CREATEDATABASEdatabase-name2、说明:删除数据库dropdatabasedbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXECsp_addumpdevice'disk','testBack','c:\mssql7backup\MyNwind_1.dat转载 2016-12-23 09:43:15 · 272 阅读 · 0 评论 -
PDO 类库
header('content-type:text/html;charset=utf-8');class PdoMySQL{ public static $config=array();//设置连接参数,配置信息 public static $link=null;//保存连接标识符 public static $pconnect=false;//是否开启长连接 publ转载 2016-11-24 14:37:46 · 1018 阅读 · 0 评论 -
生成 xml
header("content-type:text/xml;charset=utf-8"); include 'pdo.class.php'; //包含 pdo 类 $PdoMySQL=new PdoMySQL(); // 实例化 pdo 类 $data = $PdoMySQL->find('region'); //查询 regi原创 2016-11-24 14:31:17 · 266 阅读 · 0 评论 -
PDO事务
header("content-type:text/html;charset=utf-8"); $dsn = "mysql:host=localhost;dbname=test"; $pdo = new PDO($dsn,'root','123456'); try { $pdo->beginTransaction(); //开启原创 2016-11-22 18:13:06 · 333 阅读 · 0 评论