- 博客(25)
- 资源 (4)
- 问答 (2)
- 收藏
- 关注
原创 php用grpc调用golang使用详解
注意:go-grpc_out表示grpc服务端生成目录,因已指定插件为go,所以可不与--plugin一起使用;go_out表示请求及响应数据格式生成目录。文件中的注释生成HTML、JSON、DocBook和Markdown文档,php语言对应的插件是grpc_php_plugin。注意:grpc_out表示grpc客户端生成目录,需与--plugin一起使用;php_out表示请求及响应数据格式生成目录。是Google Protocol Buffers的编译器,它可以将。的文档生成器插件,它可以从。
2023-10-13 10:31:49
216
原创 解决composer报错Composer\Downloader\TransportException
Composer\Downloader\TransportException
2022-05-24 16:27:45
4143
原创 self与static、get_class()与get_called_class()区别
在日常项目代码中,大家一定经常能看到self、static、get_class、get_called_class()的使用,但不一定都知道它们的区别,本文就以个人理解来说明一下。1、self与staticself指向的是当前类,既self代码所在类;static首先指向调用类,既谁调用static所在类的代码就指向谁,一般指向子类。如果没有子类,则与self相同指向的是当前类;示例:<?php class Father{ protected static $name =
2021-11-25 11:48:35
312
原创 preg_match与preg_match_all区别
定义:preg_match_all:从左边开始一直到尾部,找出所有匹配的字符串。匹配结果$matches为二维数组,$matches[0]是匹配到的完整结果,$matches[1]是匹配到完整结果的字组。preg_match:从左边开始,匹配到第一个符合字符串后停止匹配。匹配结果$matches为一维数组,$matches[0]是匹配到的完整结果,$matches[1]是匹配到完整结果的字组。示例1:$str = "Name: <b>PHP</b> <br&
2021-11-23 17:18:14
1558
原创 解决github访问慢的问题
配置hosts如下:http://github.com 140.82.113.3http://gist.github.com 140.82.113.3http://help.github.com 185.199.108.154 http://nodeload.github.com 140.82.113.9http://github.global.ssl.fastly.net 199.232.69.194http://raw.github.com 185.199.108.133http:...
2021-11-15 16:56:57
518
原创 PHP生成器yield的用法
问题:工作中,经常会遇到处理大量数据的情况,比如读一个大的文件,然后对文件内容做处理,例如:<?phpfunction read_txt($file){ $data = []; $handle = fopen($file, 'r'); while (!feof($handle)) { $data[] = fgets($handle); } fclose($handle); return $data;}function
2021-03-29 15:49:38
380
原创 PHP斐波那契数列的不同实现(尾递归+循环)
递归:public function fei($n){ static $map = []; //使用局部静态变量存储上一次递归的值,尾递归实现 if (isset($map[$n])) { return $map[$n]; } if ($n < 3) { $map[$n] = 1; return 1; } $map[$n] =
2021-03-29 15:13:23
153
原创 composer install及require卡住问题解决办法
问题:使用composer安装依赖包时经常会遇到卡住或者提示PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 2631656 bytes) in phar:///usr/local/bin/composer/src/Composer/Cache.php on line 84内存不足问题。解决方法:1、可能是镜像源问题,使用composer config -l可查看当前镜像源。.
2021-02-07 11:25:46
1962
原创 传值与传引用
传值就是简单的赋值$a = 20;$b = $a;echo $b; //输出20无论怎么修改变量b的值,变量a的值都不会发生改变。传引用有点像C语言的指针,指向的是变量内容的地址$a = 20;$b = &$a;echo $b; //输出20$b = 15;echo $a; //输出15通过把变量内容的地址进行赋值,变量a与变量b都指向同一个变量内容地址;当修改$b变量值时,$a的值也被改变了,有点像unix中的硬链接。优缺点:当变量值较大时,如果使用传值方式
2021-01-08 19:18:42
1252
原创 PHP方法名与类名相同时实例化类会触发该方法
PHP中方法名与类名相同时(忽略大小写),且没有定义构造函数,那么在类实例化时,会把该方法当做构造函数执行,使用时需注意。<?phpclass A { public function a() { echo 'i am a'; }}$a = new A();echo $a->a();执行结果:i am ai am a...
2021-01-06 14:57:05
262
转载 myisam与innodb的区别
分享两篇总结的很好的文章:https://blog.youkuaiyun.com/qq_35642036/article/details/82820178https://my.oschina.net/xiaoyoung/blog/3046779
2020-08-28 16:47:06
165
转载 PHP错误与异常处理try和catch
请一定要注意,没有特殊说明:本例PHP Version < 7 说起PHP异常处理,大家首先会想到try-catch,那好,我们先看一段程序吧:有一个test.php文件,有一段简单的PHP程序,内容如下,然后命令行执行:php test.php1 <?php2 $num = 0;3 try {4 echo 1/$num;56 } catch (Exception $e){7 echo $e->g...
2020-08-20 17:46:57
12909
1
原创 git设置hooks检测
设置全局git 1.7.1版本1. Enable git templates:git config --global init.templatedir '~/.git-templates'# This tells git to copy everything in ~/.git-templates to your per-project .git/ directory when you run git init2. Create a directory to hold the global
2020-06-03 14:13:44
1473
转载 Mysql定时执行任务实现方法
在开发过程中经常会遇到这样一个问题:每天必须定时去执行一条sql语句 或更新或删除或执行特定的sql语句。MySQL的客户端工具Navicat for mysql提供了计划任务的形式,可以很好地实现该功能,而且也确实可行,比如像定时备份就做的很好。然而当在执行的语句中包含有中文的时候,却无法定时执行了。那么就想到用mysql的event计划任务去实现:
2017-07-28 14:58:51
423
转载 thinkphp mysql 读写分离
hinkPHP提供了完善的读写分离功能,不需要手动切换数据库。什么时候读,什么时候写系统会自动判断。读数据时系统会操作从服务器,而写数据时系统会操作主服务器。最终由数据库实现同步,这就是一个最典型的数据库读写分离,下以将配置好的两台主从数据库为例,详细介绍实现读写分离。首先打开项目下的数据库配置文件,修改其中的数据库连接参数。要实现多数据库连接,只需要使用","分隔多台服务器即可,如以
2017-07-28 14:55:29
460
转载 ajax 设置Access-Control-Allow-Origin实现跨域访问
ajax跨域访问是一个老问题了,解决方法很多,比较常用的是JSONP方法,JSONP方法是一种非官方方法,而且这种方法只支持GET方式,不如POST方式安全。即使使用jQuery的jsonp方法,type设为POST,也会自动变为GET。官方问题说明:“script”: Evaluates the response as JavaScript
2017-07-28 09:36:47
543
转载 mysql lock table/unlock table 表锁/解锁
在某个地方看到有个例子,具体描述类似如下:商店现在某商品只有1件库存,然后A与B在网上进行下订,A与B几乎同时(或许也就差几毫秒,A比B快那么一点点)进行。很明显是只有A才能成功下单的,B则会收到库存不足的提示,但是作为放置在服务端的那个页面(或者称为脚本程序)我们得怎样去处理这个问题呢?或者我先放出一段代码吧。 代码如下复制代码 $s
2017-07-14 15:12:13
946
1
原创 mysql中FIND_IN_SET的使用方法
在mysql中,有时我们在做数据库查询时,需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的find_in_set函数就派上用场了,下面来具体了解一下。test表: uid btype 1 1,2 2 12,23 3 14,16
2017-07-14 14:31:57
552
转载 支付宝网页支付
1.填写配置信息 [php] view plain copyfunction alipayConfig() { //合作身份者id,以2088开头的16位纯数字 $alipay_config ['partner'] = ''; //收款支付宝账号,一般情况下收款账号就是签约账号
2017-07-07 16:36:39
4794
原创 php实现定时任务
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去$sleepTime = 60*30;do{$run = include 'config.php';//返回值1-执行,2-停止执行if($run) {die('process a
2017-07-07 10:55:21
398
pre-commit相关文件.zip
2020-06-03
浅谈Mycat数据库中间件.pptx
2020-05-08
定时任务的二三事儿.pptx
2019-11-09
thinkphp如何屏蔽错误
2017-04-06
PHP服务器上使用百度编辑器上传视频报'服务器返回出错'(本地无错误,上传图片也无错误)
2016-08-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人