
php
君君要上天
每天学习一点点,每天提升一点点。
展开
-
php笔记(1)——wamp配置
wamp安装官网直接下载wamp,点击安装即可自定义根目录路径wamp安装后,默认的网站目录是在安装路径下的www。那么如何修改这个根目录呢?打开httpd.conf,搜索documentroot,在如下图所示位置进行修改即可然后重启apache服务即可。但是使用wamp快速打开网站根目录时,还是打开原来的那个目录,这该如何修改呢?1.打开wamp安装目录下的wampmanager.ini进行修改2原创 2016-05-24 22:52:29 · 607 阅读 · 0 评论 -
php二维码与电子名片
生成二维码php可以使用phpqrcode这个库来很方便的生成二维码。phpqrcode: 下载地址然后将phpqrcode源码放到你的项目中,include qrlib.php 文件:include 'phpqrcode/qrlib.php';QRcode::png('http://www.baidu.com');然后直接访问这个php文件,就能在浏览器上打印出一个二维码。如果不想直接显示二维码原创 2017-08-17 14:46:52 · 1740 阅读 · 0 评论 -
PHP性能优化
性能测试工具ab压测工具在做性能优化之前,我们必须会用工具来测试我们的php服务的性能。ab压测工具是apache的一个小工具,简单好用。安装apache会自动带有ab工具,如果想单独ab工具,在Ubuntu中可以用apt install apache2-utils 命令进行安装,其他系统请自行百度。ab命令最主要有两个参数 参数 说明 -n 请求数 -c 并发数使用方法如下:原创 2017-10-28 16:18:45 · 392 阅读 · 0 评论 -
消息队列-beanstalkd
基本介绍 Beanstalk,一个高性能、轻量级的分布式内存队列系统核心概念:job: 一个需要异步处理的任务,需要放在一个tube中tube:一个队列,用来存放job,相当于一个主题(topic),是producer和consumer操作的对象producer:生产者,发布任务的人,通过put命令来将一个job放到一个tube中consumer:消费者,处理任务的人,通过reserv原创 2017-11-08 16:34:42 · 1106 阅读 · 0 评论 -
PHP-FPM命令
查看版本php-fpm -v启动php-fpm –c php.ini –y php-fpm.conf关闭kill -INT `cat /usr/local/php/var/run/php-fpm.pid`重启kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`信号关闭和重启fpm都是用了kill命令来给fpm进程发送一个信号,除了上面的两个,还有其他原创 2017-11-09 17:33:10 · 3845 阅读 · 0 评论 -
php配置调优
php-fpm.conf优化php-fpm主要有以下几个可优化配置: 配置项 说明 listen 推荐使用/tmp/php-cgi.sock,速度较快 pm 进程管理模式 static(静态)或者dynamic(动态) pm.max_children 静态方式下开启的php-fpm进程数量 pm.start_servers 动态方式下的起始php-fpm进程数量原创 2017-11-09 20:52:04 · 1111 阅读 · 0 评论 -
ini_get 和 get_cfg_var的区别
这两个方法都是获取php配置的值,用法一样,但是有一个区别:ini_get 获取配置的当前值,该值可以在代码中使用 ini_set 进行修改get_cfg_var 获取配置文件中的值...原创 2018-02-23 14:16:45 · 752 阅读 · 0 评论 -
PHP7新特性
php7已经发布了很久了,是php十年以来首次大改版。但是我相信大多数人都只闻其名,却不知道php7相比php5版本到底有了哪些改变。众所周知,php是IO密集型的语言,在一般的网站系统中,它的主要瓶颈在于mysql中,但相比于c语言,c++等,它的计算能力弱了几十倍。性能问题正是php最大的瓶颈。说到这里,你应该已经知道php7做出了哪些改变,没错,php7最大的改变就是优化了它的性能。先来看一组原创 2018-03-02 15:43:58 · 330 阅读 · 0 评论 -
使用geohash实现查找附近的人
需求在许多社交app和外卖app种都有一个功能,就是查找附近的人或者附近的商家。我们很容易获得用户的经纬度坐标,但是我们如何知道哪些用户在我们的四周?如果知道两个用户坐标,可以使用几何数学的方法算出两个坐标之间的距离,但是如果要从海量数据库中找出距离本人1公里内的所有用户,难道要把所有用户经纬度数据都查出来然后一个个计算与我的距离吗?显然不可取。geohash介绍因此我们需...原创 2018-04-25 11:26:56 · 4050 阅读 · 0 评论 -
PHP的bc数学函数计算精度的坑
PHP中的bc函数用于数学计算,主要有以下方法:但是实际使用的时候发现如下问题:$a = bcsub(59.9,58);echo $a;这段代码我们期望得到的值是1.9,但是实际多次运行结果有时候是1,有时候是1.9(大多数情况都是1),本人一脸懵逼。虽然不知道什么原因导致多次结果不同,但是很显然是计算精度问题。有两种方式解决:1.计算时指定精度$a = bcsu...原创 2018-05-03 12:00:38 · 2955 阅读 · 0 评论 -
php使用ReceiveMail获取邮件
ReceiveMail是一个老外写利用pop3协议读取邮件的类,但是不支持中文,笔者找了不少资料,整合了许多网友改造的ReceiveMail类,支持多种邮件编码。ReceiveMail类:class ReceiveMail{ var $server = ''; var $username = ''; var $password = ''; var ...原创 2018-07-30 13:40:09 · 3377 阅读 · 1 评论 -
vagrant + phpstorm + xdebug 配置教程
以下方法同时适用于window和mac安装xdebug扩展wget http://xdebug.org/files/xdebug-2.4.0rc4.tgztar xvzf xdebug-2.4.0rc4.tgzcd xdebug-2.4.0RC4phpize./configure --enable-xdebug --with-php-config=/usr/local/php/bi...原创 2018-08-16 15:05:02 · 2582 阅读 · 2 评论 -
PHPExcel导出示例
导出方法封装<?php/** * Created by PhpStorm. * User: Administrator * Date: 2017/6/8/008 * Time: 17:14 */namespace Common\Utils;class ExcelExporter{ /** * @param $data 数据 * @param $file_na原创 2017-06-30 13:46:15 · 798 阅读 · 0 评论 -
在php中使用Sphinx
要使用php连接Sphinx进行全文搜索,有两种方式将Sphinx作为php扩展安装,这种方式比较麻烦,此处不介绍在Sphinx源码目录下的有个api/sphinxapi.php,将此文件reqire到你的php中,即可调用api方法进行全文搜索php调用示例<?phprequire('sphinxapi.php');$sphinx = new SphinxClient();$sphinx原创 2017-04-26 20:26:18 · 2144 阅读 · 2 评论 -
php笔记(2)——语言基础
常量常见系统常量运算符算术运算符赋值运算符比较运算符三元运算符逻辑运算符字符串连接符错误控制运算符语言结构foreach常量 功能 代码 定义常量 define(‘PI’,3.14)或$name='PI';define($name,3.14); 取值 如:$var = PI * $r *$r;(常量取值不需要$) 或 constant('PI') 判断原创 2016-05-25 10:46:12 · 476 阅读 · 0 评论 -
php笔记(3)——字符串操作
去除字符串空格获取字符串长度字符串截取查找字符串替换字符串格式化字符串字符串的合并与分割php字符串合并函数implodephp字符串分隔函数explode字符串转义去除字符串空格 方法 作用 trim($str) 去除左右两端空格 ltrim($str) 去除左侧空格 rtrim($str) 去除右侧空格获取字符串长度 方法 作用 str原创 2016-05-25 16:30:40 · 449 阅读 · 0 评论 -
php笔记(4)——cookie与session
设置cookie删除cookiecookie有效路径session与cookie的异同使用session删除sessionsession存储用户信息设置cookiesetcookie函数,参数如下:name( Cookie名)可以通过$_COOKIE[‘name’] 进行访问value(Cookie的值)expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效p原创 2016-05-29 13:33:31 · 470 阅读 · 0 评论 -
php笔记(5)——文件操作
读取文件内容file_get_contents,可以将整个文件全部读取到一个字符串中$content = file_get_contents('./test.txt');file_get_contents也可以通过参数控制读取内容的开始点以及长度。$content = file_get_contents('./test.txt', null, null, 100, 500);PHP也提供类似于C语言原创 2016-05-29 13:51:22 · 368 阅读 · 0 评论 -
php笔记(6)——时间与日期
获取当前时间戳获取当前日期取得日期的Unix时间戳将格式化的日期字符串转换为Unix时间戳格式化格林威治GMT标准时间获取当前时间戳$time = time();echo $time;//1396193923,这个数字表示从1970年1月1日 00:00:00 到我输出这个脚本时经历了1396193923秒获取当前日期//date函数,第二个参数取默认值的情况echo date("Y-m-原创 2016-05-29 13:57:33 · 404 阅读 · 0 评论 -
php笔记(7)——图形图像操作
GD库简介GD指的是Graphic Device,PHP的GD库是用来处理图形的扩展库,通过GD库提供的一系列API,可以对图像进行处理或者直接生成新的图片。PHP除了能进行文本处理以外,通过GD库,可以对JPG、PNG、GIF、SWF等图片进行处理。GD库常用在图片加水印,验证码生成等方面。PHP默认已经集成了GD库,只需要在安装的时候开启就行。header("content-type: imag原创 2016-05-29 14:16:19 · 682 阅读 · 0 评论 -
php笔记(8)——异常处理
抛异常try{ //可能出现错误或异常的代码 //catch表示捕获,Exception是php已定义好的异常类 } catch(Exception $e){ //对异常处理,方法: //1、自己处理 //2、不处理,将其再次抛出 }异常处理类Exception是所有异常处理的基类。Exception具有几个基本属性与原创 2016-05-29 14:39:44 · 470 阅读 · 0 评论 -
php笔记(10)——面向对象之魔术方法
__tostring__invoke__call__staticcall__get__set__isset__unset__clone__tostring()当对象被当作字符串输出时,调用该方法。class People{ public function __tostring(){ return 'this is a people'; }}$p1 =原创 2016-05-29 17:27:36 · 587 阅读 · 0 评论 -
php笔记(9)——数据库操作与mysqli扩展
数据库扩展Mysql常用的扩展有原生的mysql库,也可以使用增强版的mysqli扩展,还可以使用PDO进行连接与操作。mysql扩展进行数据库连接的方法:(该库已不推荐使用)$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');mysqli扩展:$link = mysqli_connect('mysql_host',原创 2016-05-29 15:06:02 · 3922 阅读 · 0 评论 -
php笔记(11)——json_encode后中文编码问题
在php中,我们使用json_encode来将对象转换为json时,发出现中文被转换为unicode编码。我们需要使用JSON_UNESCAPED_UNICODE参数,使其保持中文json_encode($data,JSON_UNESCAPED_UNICODE) 注意:要求php5.4+原创 2016-06-10 19:03:08 · 453 阅读 · 0 评论 -
PHP基于SMTP协议实现邮件发送
SMTP协议当我们使用php的第三方库或工具类进行邮件发送的时候,是否想过一个问题: 为什么我们不能自己写php代码实现邮件发现,而要用别人的库呢?php发送邮件到底是如何实现的?首先我们要了解发送邮件的基本原理,本文基于SMTP协议实现邮件发送 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议。简单来说它定义了一组规则,我们只需要依照这个规则来告诉原创 2017-04-26 20:14:13 · 1721 阅读 · 0 评论 -
宝塔面板centos7/php5.6安装mssql扩展
可以参考:https://blog.youkuaiyun.com/21aspnet/article/details/47451253前面安装FreeTDS啥都很顺,最后安装mssql和pdo_dblib 一直失败。最后总结,有两个地方要注意:1 宝塔面板的php路径和phpize路径和文章说的不一样;2 宝塔的php必须先编译安装,否则无法正常执行下面的脚本cd /www/server/p...转载 2018-08-19 13:16:41 · 5932 阅读 · 3 评论