windows server 2012配置php环境教程
买了windows系统的服务器(VPS)等之后我们需要一个php环境来搭建自己的项目,这里介绍手工在windows server 2012上面配置php环境的具体步骤,适合使用服务器和VPS等的新手。php 5.6.12下载地址:http://windows.php.net/downloads/releases/php-5.6.19-nts-Win32-VC11-x86.zip
Visual Studio 2010 动态链接库(64位系统两 ...
正确配置Nginx+PHP
对很多人而言,配置Nginx+PHP无外乎就是搜索一篇教程,然后拷贝粘贴。听上去似乎也没什么问题,可惜实际上网络上很多资料本身年久失修,漏洞百出,如果大家不求甚解,一味的拷贝粘贴,早晚有一天会为此付出代价。
假设我们用PHP实现了一个前端控制器,或者直白点说就是统一入口:把PHP请求都发送到同一个文件上,然 ...
【php】PHP中Session ID的实现原理
Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。
PHPSESSIONID的生产算法原理如下:
hash_func = md5 / sha1 #可由php.ini配置
PHPSESSIONID = hash_func(客户端IP + 当前时间(秒)+ 当前时间(微妙)+ PHP自带的随机数生产器)
从 ...
apache+php环境配置,访问index.php,一直是下载文件
Apache\conf(修改四个地方)
LoadModule php7_module F:/php-7.3.6/php7apache2_4.dll (模块文件让apache可以解析php)
PHPIniDir F:/php-7.3.6 (php配置文件的路径)
AddType application/x-http-php .php(增加php解析文件的类型,网上大多配置到这就结束) 实测发现会出现访问index.php变成一直下载的情况
<FilesMatch ...
PHP常用函数总结
一、 数学函数1.abs(): 求绝对值 求绝对值$abs = abs(-4.2);输入:任意数字输出结果:4.2(数字绝对值数字)
2.ceil(): 进一法取整 进一法取整echo ceil(9.999);输入:任意数字输出结果:10(浮点数进一取整)
3.floor(): 舍去法取整 舍去法取整echo floor(9.999);输入:任意数字输出结果:9(浮点数直接舍去小数部分)
4.f ...
Eclipse IDE配置PHP开发、调试环境
前言
使用java语言开发的朋友想必对Eclipse开发工具已经不陌生了,那么Eclipse作为java主流的开发工具,是否能够开发PHP项目呢?答案如你所想,肯定是可以的!以下就是该IDE下如何配置PHP开发及调试环境的内容。亲身实践,已测试通过。
安装
1、安装php development tools(PDT)工具
选择【帮助】-【Eclipse market ...
PHP 工厂模式介绍
工厂模式,顾名思义,如同工厂一样,你把原材料放入工厂中,出来的是成品,而你并不需要知道工厂里做了什么,工厂模式主要用于解耦。个人认为设计模式只能在实战中更好的理解,当前水平有限,欢迎大家交流
简单工厂模式
把对象的创建和使用的过程分开,比如: ClassA 调用 ClassB,那么 ClassA 只调用ClassB 的方法,至 ...
PHP实现消息推送
我们做web的时候偶尔会遇到消息推送,如图示例(红框位置)
当我们遇到这种功能要如何开发呢?下边将我了解的两种方法整理一下:
一、ajax轮询,定时去请求服务器数据
通过观察thinkphp官网貌似也是用的这个方法,下边将这种方法整理一下:
Notify.php
//获取通知消息
public function getNotifyCount()
{
...
php的api接口
在实际工作中,使用PHP写api接口是经常做的,PHP写好接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道,请求的来源是什么,有可能是别人非法调用我们的接口,获取数据,因此就要使用安全验证。
一、验证原理
1、示意图
2、原理
从图中可以看得很清楚 ...
全面解读php-引用变量(&)
本文讲述引用传值的核心原理,看完即可扫清一切和引用传值相关的内容,不会了记得画图。
一、memory_get_usage的使用
传值赋值
// 定义一个变量
$a = range(0, 10000);
//memory_get_usage() 可以查看PHP内存使用量
var_dump(memory_get_usage()); // int(989778)
// 定义变量b,将a变量的值赋值给b
$b = $a;
var_dump(me ...
php 精度计算问题
PHP
var_dump(intval(0.58 * 100));
正确结果是 57,而不是 58
浮点运算惹的祸
其实这些结果都并非语言的 bug,但和语言的实现原理有关, js 所有数字统一为 Number, 包括整形实际上全都是双精度(double)类型。
而PHP会区分 int 还是 float。不管什么语言,只要涉及浮点运算,都是存在类似的问题,使用时一定要注意。
说 ...
php中$_REQUEST、$_POST、$_GET的区别
php中$_REQUEST、$_POST、$_GET的区别1. $_REQUEST php中$_REQUEST可以获取以POST方法和GET方法提交的数据,缺点:速度比较慢 。
2. $_GET 用来获取由浏览器通过GET方法提交的数据。GET方法他是通过把参数数据加在提交表单的action属性所指的URL中,值和表单内每个字段一一对应,然后在URL中可以看到,但是有如下缺点: 1. ...
PHP 的源码编译安装
PHP 架构和安装扩展的几种方式PHP 三大模块:
SAPI:接受并处理请求。Zend Engine:PHP 的核心,负责分析 PHP 代码并转为 opcode,然后在 Zend VM 虚拟机上执行。PHP 功能函数及扩展层:实现各种功能,例如 curl 通信、连接 MySQL 等。PHP 中,有以下几种方式添加扩展:
把扩展编译进 PHP通过 pecl 命令或 Linux 发行版自带 ...
nginx 如何解析php文件php-fpm的解释
nginx 如何解析php文件php-fpm的解释
首先从nginx说起,nginx的配置文件,/usr/local/nginx/conf/nginx.conf
location ~ \.php {
root /nginx;
fastcgi_pass 127.0.0.1:9000; //ip+port方式
; fastcgi_pass unix:/tmp/php-cgi.sock;【unxi domain socket形式】 这种是 ...
php-cli和php-fpm FastCgi与PHP-fpm之间的关系
php-cli和php-fpm
cli就是我们在命令行里使用的那个php命令,其实它也可以提供HTTP服务,因为它内置了一个HTTP服务器:
php-fpm是一个多进程架构的FastCGI服务,内置php解释器,进程后台常驻,自带进程管理器,支持进程池配置,多配合Nginx使用.
Linux上自行编译的PHP默认是非线程安全的,什么时候需要线程安全呢?
比如你要使用pthre ...
php 连接redis
1.windows
完整教程:http://www.php.cn/jishu/php/412784.html
下载地址:https://windows.php.net/downloads/pecl/releases/redis/
(1)进入下载地址,选择自己的版本(很重要)
php_redis-3.1.4-7.0-ts-vc14-x64.zip
php_redis-3.1.4 redis版本,这个随你
7.0 php版本。这个必须要和你环境的版本对应
ts 你版本 ...
PHPStorm 配置本地 WebServer 运行 PHP
目标:PHPStorm 2018.2 通过配置运行 PHP 代码无需安装其它 Web Server
File -> Settings菜单找到PHP,设置 CLI Interpreter PHP的解释器
点击...按钮,进入解释器配置界面,起一个名字Name,PHP executable路径填写本地PHP程序完整路径,点击刷新按钮如果填写无误将看到蓝色叹号图标,如有问题将会提示。
Run -> Edit ...
php结合redis实现高并发下的抢购、秒杀功能
抢购、秒杀是平常很常见的场景,面试的时候面试官也经常会问到,比如问你淘宝中的抢购秒杀是怎么实现的等等。
抢购、秒杀实现很简单,但是有些问题需要解决,主要针对两个问题:
1 高并发对数据库产生的压力
2 竞争状态下如何解决库存的正确减少("超卖"问题)
第一个问题,对于PHP来说很简单,用缓存技术就可以缓解数据库 ...
PHP实现微信小程序支付
本文仅记录了微信小程序支付开发的基本流程和代码,具体业务需自行修改。tp5框架下演示:
参考:
微信小程序支付:业务流程
SDK与DEMO: 下载页
PHPPayDemo: demo
小程序端:
goPay(e){
var that = this;
//发起预支付,获取所需参数
wx.request({
url: app.globalData.host + ' ...
php+redis实现消息队列
参考:http://www.cnblogs.com/lisqiong/p/6039460.html
参考:http://blog.csdn.net/shaobingj126/article/details/50585035
消息队列:是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列 ...