
php
Dobby Liu
这个作者很懒,什么都没留下…
展开
-
PHP分布式架构RPC介绍以及手写RPC框架
分布式解决什么问题?举个例子:当网站有10万个访问,已经没法处理这么多访问请求。通常,我们可以提高服务器的配置,其次我们还可以添加服务器来分流处理,如果一台机器只能处理6万个请求,那么我们再加一台服务器,把请求分配到两台服务器,那么就可以处理10万请求了。加服务器有两种方式实现,一种是用负载均衡的方式;另一种用分布式的方式。负载均衡其实就是把原来的代码复制到另一台服务器,两台服务器的代码是...转载 2019-09-03 11:49:18 · 2001 阅读 · 0 评论 -
用PHPMailer发送邮件
1、准备类库PHPMailer下载地址:https://github.com/PHPMailer/PHPMailer/2、准备开通了IMAP/SMTP服务的邮箱一个,用于发送邮件。以QQ邮箱(常见)为例,(1)登上QQ邮箱(2)进入邮箱设置页面,切换到“账户”tab页(3)在“账户”tab页中,找到IMAP和SMTP服务开启的地方,并点击“开启”按钮...原创 2019-05-23 11:10:10 · 389 阅读 · 0 评论 -
命名空间namespace小记
假设项目目录下有A.php,B.php,C.php和index.phpA.php中的代码<?php namespace a\a; class Apple{ public function get_info(){ echo 'this is A'; } }?>B.php中的代码<?...原创 2019-05-25 18:05:37 · 154 阅读 · 0 评论 -
支付宝支付成功后要重新登录问题解决小记
问题:项目A使用项目B的支付宝配置信息,支付成功后,进入到了回调地址中,回调地址中的业务处理代码页执行成功,但是在跳转到商户页面时,跳转到非指定页面(如登录页面)或跳转到指定页面但是要求登录。原因:session丢失解决方法:方法一:在蚂蚁开放平台给项目A创建单独的应用,并指定项目A自己的回调地址。方法二:蚂蚁开放平台的项目B中不指定回调地址。方法三:在回调地址中携带登...原创 2019-05-07 16:29:13 · 3779 阅读 · 0 评论 -
支付宝创建应用
1、登录蚂蚁金服开放平台可以扫码登录,也可点击“登录”按钮后使用账号密码登录。登录地址:https://open.alipay.com/platform/home.htm2、点击 “开发中心” 的 “网页&移动应用”,即创建应用的地方3、选择要创建的应用的类型,这里选择“支付接入”4、按照提示填写应用的基本信息,其中应用名称和应用图标是必填项,其他项最好根据...原创 2019-05-07 15:17:19 · 2706 阅读 · 0 评论 -
thinkPHP的空操作和空控制器
1、空操作当用户访问某控制器下不存在的方法时,Tp会自动的执行当前控制器下的_empty方法。对于此机制就是空操作。2、当访问的控制器下没有_empty方法时,用户访问了不存在的方法(下面以test3为例)时,会报如下的错误3、在控制器中添加_empty方法<?phpnamespance 模块名\Controller;use Think\Controller; #u...原创 2019-03-23 14:17:38 · 362 阅读 · 0 评论 -
thinkPHP隐藏入口文件
下面以web服务器以Apache为例。1、修改Apache的主配置文件,开启Apache的重写机制2、修改虚拟主机配置3、重启Apache4、拷贝修改Apache的重写规则文件(.htaccess文件)重写规则代码如下<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine...原创 2019-03-23 10:48:07 · 189 阅读 · 0 评论 -
关于支付宝return_url和notify_url通知顺序问题【详细区别】_PHP教程
转自:https://www.aliyun.com/jiaocheng/953166.html摘要:问题描述:我在处理支付宝业务中出现过这样的问题,付费完成后,在支付宝跳转到商家指定页面时,订单状态已经更新,通过调试发现是支付宝先通知notify_url,完成了订单状态。支付宝return_url和notify_url通知顺序问题:顺序不一定的,请别以先后顺序来做判断。具体如何判断,是根据您当...转载 2018-10-18 15:15:05 · 700 阅读 · 0 评论 -
使用阿里云OSS上传下载项目文件
开通阿里云OSS:https://www.aliyun.com/product/oss?utm_content=se_1000110711参考文档:https://promotion.aliyun.com/ntms/act/ossdoclist.html?spm=5176.7933691.744462.c2.58b36a56Ij6ba2PHPSDK快速接入文档:https://help.a...原创 2018-09-26 15:54:06 · 4748 阅读 · 0 评论 -
支付宝支付退款接入需要注意的几点(小记)PHP
1、配置文件中的公钥一定要是 支付宝公钥!!!不是应用公钥,否则验签时会不成功。此处可参考官方文档:https://docs.open.alipay.com/291/105972/2、支付或退款的内容设置时,内容的最后一个参数后面一定不能加“逗号”,否则会支付或退款不成功!其他的接入就根据项目的业务逻辑和官方提供的demo接入就可以了。官方文档:https://docs.open.alipay.c...原创 2018-07-12 15:25:18 · 4811 阅读 · 0 评论 -
数据库表中新建字段满足条件时,赋值表中其他字段
情景描述:项目中,存在在表中添加新字段,并且在满足一定条件时将表中其他字段的值赋给该字段。不必查询出来后,在为其赋值。代码://创建sql语句$sql = 'update table_name set new_field1 = field1, new_field2 = field2 where ';$sql .= "new_field1 is null and new_field2 is nu...原创 2018-07-02 11:48:31 · 2296 阅读 · 0 评论 -
cmd运行PHP文件
1、在环境变量中添加php.exe"我的电脑"右键"属性",打开如下的框2、打开cmd原创 2019-06-13 17:15:20 · 1557 阅读 · 1 评论 -
win10 cmd运行PHP乱码解决小记
打开cmd输入chcp 65001 回车原创 2019-06-14 09:54:34 · 503 阅读 · 0 评论 -
支付宝passback_params参数测试小记
passback_params:公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参数。支付宝只会在异步通知时将该参数原样返回。本参数必须进行UrlEncode之后才可以发送给支付宝。云排查:开发者日志查询、联调问题排查工具链接https://openmonitor.alipay.com/acceptance/cloudparse.htm云排查工具使用结果如下图所示,使用结果暂时...原创 2019-05-07 17:13:08 · 5473 阅读 · 1 评论 -
php中curl使用案例(三)
通过调用webservice查询服务器数据(本应是查询天气,因接口不能使用,改成访问本地的文件)$data = 'theCityName=北京';$curl = curl_init();//设置请求的链接curl_setopt($curl,CURLOPT_URL,"http://localhost/work/return.php");#"http://www.webxml.com.cn...原创 2019-07-27 09:10:53 · 234 阅读 · 0 评论 -
PHP中curl使用案例(二)
抓取网页信息放入变量中并替换部分内容//初始化$curl = curl_init();//设置访问页面的urlcurl_setopt($curl, CURLOPT_URL,"http://www.baidu.com");//执行之后不直接打印出来curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);//执行$output = curl_e...原创 2019-07-26 17:30:52 · 153 阅读 · 0 评论 -
PHP中curl概念及使用理论
1、概念curl是使用url语法传输数据的命令行工具。总结:curl是客户端向服务器请求资源的工具。2、应用场景获取网页资源--编写网页爬虫;获取webservice数据接口资源--动态获取接口数据,比如天气、号码归属地等;获取FTP服务器里面的文件资源--下载或上传FTP服务器里面的文件其他资源--所有网络上的资源都可以使用curl访问或下载到。3、确认PHP...原创 2019-07-26 16:41:55 · 190 阅读 · 0 评论 -
PHP水平测试题
答案在最后1. What is the closing tag used by a PHP-driven web page?A. />B. #>C. ?>D. .>2. Which PHP conditional operator means the values are equal AND of the same data type?A. ==...转载 2019-07-24 15:13:19 · 755 阅读 · 0 评论 -
PHP中curl的使用(六)-- 用curl访问https资源
$curl = curl_init();curl_setopt($curl, CURLOPT_URL, "https://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/jquery.validate.js");curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//设置支持httpsdate_def...原创 2019-07-29 13:41:48 · 333 阅读 · 0 评论 -
PHP 手机号格式化
/** * 手机号格式化 * 15109876543=>151-0987-6543 * @author d */function mobile_format($mobile){ $new = ''; for($i = 0;$i < strlen($mobile);$i++){ if($i == 3 || $i == 7){ ...原创 2019-07-24 11:53:59 · 723 阅读 · 0 评论 -
PHP中curl使用案例(五)-- 把本地文件上传到ftp服务器上
//把本地文件上传到ftp服务器上$curl = curl_init();//指定待上传的文件并以只读方式打开$localfile = 'localfile.jpeg';$fp = fopen($localfile,'r');//设置上传的url, ftpfile.jpeg我没事先创建,上传成功了curl_setopt($curl, CURLOPT_URL, "ftp:/...原创 2019-07-29 11:55:02 · 925 阅读 · 0 评论 -
PHP中curl使用案例(四)-- 从ftp服务器下载文件到本地
//从FTP服务器下载一个文件到本地//初始化$curl = curl_init();//设置被下载文件的urlcurl_setopt($curl, CURLOPT_URL,"ftp://192.168.0.101/test.jpeg");//设置返回信息中不包含响应头信息curl_setopt($curl, CURLOPT_HEADER,0);//设置执行之后的结果不直接打印出来...原创 2019-07-29 11:08:52 · 887 阅读 · 0 评论 -
PHPmailer本地可发送邮件 阿里服务器上不能发送
原代码:/** * 发送邮件方法 * @param $msg string 发送的内容 */function sendEmail($msg){ //引入PHPMailer的核心文件 Vendor('PHPMailer.src.PHPMailer'); Vendor('PHPMailer.src.SMTP'); //实例化PHPMailer核心类 ...原创 2019-07-02 09:51:39 · 1270 阅读 · 0 评论 -
PHP下载浏览器能直接打开的文件
public function download(){ //下载路径 $template_url = './xx/xx/xx.txt'; $filename = 'xx.txt'; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); ...原创 2018-06-26 15:05:15 · 884 阅读 · 0 评论 -
自定义session handler的数据库实现
在php.ini中搜索“session.”即可查看session的相关配置。 SessionHandlerInterface 的数据库实现/** *自定义session管理器 */ class CustomSession implements SessionHandlerInterface{ //存放数据库连接 private $link原创 2018-02-08 17:17:05 · 719 阅读 · 0 评论 -
根据IP获取IP所在城市PHP
1、获取当前用户的真实IP地址final private function getIp(){ $onlineip = '';if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')){$onlineip = getenv('HTTP_CLIENT_IP');}else if(ge原创 2017-08-14 10:57:53 · 386 阅读 · 0 评论 -
thinkPHP3.2获取当前语言名称
1、cookie("think_language");2、LANG_SET原创 2017-05-11 17:02:53 · 1411 阅读 · 0 评论 -
中文汉字的正则表达式php
GBK/GB2312编码下为:[x80-xff]+ 或为 [xa1-xff]+UTF-8编码下为:[x{4e00}-x{9fa5}]+/u原创 2017-05-02 19:15:05 · 362 阅读 · 0 评论 -
导出Excel文件函数
/** * 导出excel * @param $strTable 表格内容 * @param $filename 文件名 */function downloadExcel($strTable,$filename){header("Content-type: application/vnd.ms-excel");header("Content-Type: applic原创 2017-04-19 09:36:58 · 677 阅读 · 0 评论 -
thinkphp5.0隐藏index.php入口文件
第一步:修改Apache的配置: 1、在httpd.conf 配置文件中,删除 #mod_rewrite.so前的# ,加载 mod_rewrite.so 模块 2、在 httpd.conf 配置文件中,将 AllowOverride None中的 None 全部改为 All 第二步:还需要在应用入口文件同级目录添加.htaccess文件,内容如下: Optio原创 2017-03-15 10:28:19 · 857 阅读 · 0 评论 -
yii2.0basic版的配置
下载地址: http://www.yiichina.com/download从“从归档文件安装”中点选“yii2的基本应用程序模板”,下载需要的yii2.0框架。解压后,将basic文件夹复制到项目中;在浏览器中访问basic文件夹下的requirements.php文件,以检测你电脑上的PHP环境是否满足yii的运行环境,details中的result均不为failed表示环境适合运原创 2017-02-28 13:43:12 · 366 阅读 · 0 评论 -
使用jpgraph绘制3D饼图
绘制步骤:1、首先加载需要的类库文件;2、接着实例化Graph类,并进行相关的设置;3、然后实例化具体的图形类并进行相关设置;4、最后把具体图形类的实例化对象添加到Graph类对象中并输出。具体代码:<?phprequire_once "../src/jpgraph.php";require_once "../src/jpgraph_pie.php";requ原创 2017-02-28 11:15:58 · 509 阅读 · 0 评论 -
使用jpgraph绘制柱状图
柱状图是由一系列高度不等的纵向条纹表示数据分布的情况,横轴表示数据类型,纵轴显示分布情况。绘图步骤:1、首先加载需要的类库文件;2、接着实例化Graph类,并进行相关的设置;3、然后实例化具体的图形类并进行相关设置;4、最后把具体图形类的实例化对象添加到Graph类对象中并输出。具体代码:<?phprequire_once '../src/jpgraph.ph翻译 2017-02-28 10:55:03 · 1311 阅读 · 1 评论 -
使用jpgraph绘制饼图
饼图通常是以一个圆的面积表示一个整体,以扇形表示其中一个个体所占的百分比,饼图能够清晰的反映个体与个体、个体与整体之间的数量关系。绘制步骤:1、加载需要的类库文件2、接着实例化Graph类,并进行相关的设置;3、然后实例化具体的图形类并进行相关设置;4、最后把具体图形类的实例化对象添加到Graph类对象中并输出。具体代码:<?phprequire_once "翻译 2017-02-28 10:47:21 · 1537 阅读 · 0 评论 -
jpgraph的使用以及标题和图例中文乱码的源码解决方法
下载jpgraph压缩包 http://jpgraph.net/download/解压后,将src文件复制到项目中,新建测试文件test.php(此处是在src所在目录中新建了demo文件夹,在demo中新建的test.php)test.php中添加如下代码,<?php/** * 核心文件jpgraph.php必须引入 * Date: 2017/2/27 0027 * T原创 2017-02-28 10:20:52 · 1392 阅读 · 0 评论 -
PHP使用CURL详解
来源:http://www.cnblogs.com/manongxiaobing/p/4698990.htmlCURL是一个非常强大的开源库,支持很多协议,包括HTTP、FTP、TELNET等,我们使用它来发送HTTP请求。它给我们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS。CURL可以根据URL前缀是“HTTP” 还是“HTTPS”自动选择是否加密发转载 2017-09-06 18:10:09 · 264 阅读 · 0 评论 -
Onethink上传服务器后登录不了的问题
转载自:http://blog.youkuaiyun.com/u012782626/article/details/44114161在本地修改完Onethink后上传到服务器,进入后台登录的时候,发现输入用户名和密码和验证码后,第一次点击登录没反应,第二次点击提示验证码错误。 经过一研究发现 onethink 的登陆是通过API连接Ucenter实现的,而Ucenter有单独的数转载 2017-09-03 09:25:47 · 463 阅读 · 0 评论 -
封装的cookie类
/* * cookie的设置、读取、更新和删除 */class CookieClass { //成员属性 static private $_instance = null; private $expire = 0; private $path = ''; private $domain = ''; private $secure = false;原创 2018-02-07 10:34:47 · 254 阅读 · 0 评论 -
PHP静态化页面
1、优化页面响应时间的方法 (1)动态页面静态化 (2)优化数据库 (3)使用负载均衡 (4)使用缓存2、静态化的原因 (1)PHP文件(动态文件)执行流程:语法分析->编译->运行->展示结果 (2)静态文件(如HTML文件)执行流程:运行->展示结果 (3)静态文件的请求响应时间比动态文件的请求响应时间短。3、动态页面静态化的使用场景 页面中的一...原创 2018-02-09 21:31:49 · 235 阅读 · 0 评论 -
打印数组或对象信息的函数
/* * @param mix $val 待打印数据 * @param bool $dump 是否使用var_dump调试 * @param bool $exit 是否在输出信息后退出 * @return void */function pinfo($val, $dump = false, $exit = true){ //获取打印信息使用的函数 if($dump){原创 2018-01-29 16:48:31 · 438 阅读 · 0 评论