- 博客(84)
- 资源 (17)
- 收藏
- 关注
原创 关于php匿名函数中的use
public function mkFunc(){ //唯一改动是此处加了use $func = function()use($this){ echo $this->_num++, "\n";可见使用引用传递时,即使变量滞后于函数定义,函数内部还是可以找到外部相应的变量,不会出现变量未定义的情况。
2024-02-07 09:30:32 1041
原创 php5.0到5.6的新特性,开发时应注意版本的兼容性
改变数组函数 natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip(), 和 array_unique() 将不再接受对象作为参数。改变get_class(),get_parent_class()和get_class_methods() 返回的类/方法名和定义时的名字一致(区分大小写)改变get_magic_quotes_gpc() 和 get_magic_quotes_runtime() 现在总是返回 FALSE。
2024-02-07 09:27:55 818
原创 图片文件转化成二进制流 (防止出现“图像因其本身有错无法显示‘的问题)
/获取图片二进制流。ob_clean();//清除缓冲区,防止出现“图像因其本身有错无法显示'的问题。如果不加 ob_clean();就会出现下面的bug。//或者把此文件地址作为img标签src地址输出。2 google浏览器是这样的。1 火狐浏览器是这样的。
2024-02-06 09:56:40 371
原创 一个设备内存2M,一个1G大小的文件,这个文件有若干行,输出其中的带有hello的行以及行数
第二种:PHP程序yield ,和awk这个命令用的时间差不多一样,效率是很高的。
2024-02-05 10:08:51 726
原创 rabbitMQ基本介绍
5 把队列和交换机绑定 $channel->queue_bind('msg-inbox-logs','logs-exchange','error.msg-inbox');3 声明交换机 $channel->exchange_declare('logs-exchange','topic',false,true,false);3 声明交换机 $channel->exchange_declare('logs-exchange','topic',false,true,false);
2024-02-05 10:05:53 1040 1
原创 mysql面试
select c.name,case when u.sex=1 then "男" else "女" end as xb,count(c.id) from ms_chejiu c join ms_user u on u.id=c.uid group by c.name,u.sex。join和inner join 后面可以是on也可以是where。考点:left join , right join join inner join。考点:1 group by分组 和count统计函数的使用。
2024-02-04 09:46:49 786
原创 php合并数组的几种方式 并简述其特点
array_merge_recursive后,相同键名的键值会被合并到同一数组中(会递归)它们的区别主要体现在对于相同键名(数字键名、字符串键名)的处理方式。array_merge_recursive后,重排数字键,不会覆盖。array_merge后,后面数组的键值会覆盖前面的。+操作后,前面数组的键值会覆盖后面的,保留之前数字键。array_merge后,重排数字键,不会覆盖。+后,前面数组的键值会覆盖后面的。
2024-02-02 09:55:48 369
原创 一条select在mysql中的执行过程
一个select语句,会先到查询缓存中看看,若是以前执行过,直接将查询结果返回给客户端,若是查询缓存没有命中,就需要执行后面的计划。●调用innodb引擎接口取这个表的第一行,遍历所有的判断字段,如果满足,就将查询结果存在结果集。打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口;很多时候,两种执行方法的逻辑结果是一样的,但是执行效率会有不同,而优化器就是决定选择哪个方案;经过分析器,mysql知道你要干什么了,在开始执行前,还要经过优化器的处理。如果没有命中查询缓存,就要开始分析器了;
2024-02-02 09:54:54 302
原创 TP5手动集成GatewayWorker
Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架,而GatewayWorker则是基于Workerman开发的一个长连接框架,支持分布式部署,支持全局广播或者向任意客户端推送数据,作为快速开发TCP长连接应用非常方便;重点://由于是手动添加,因此需要注册命名空间,方便自动加载,具体代码路径以实际情况为准。//由于是手动添加,因此需要注册命名空间,方便自动加载,具体代码路径以实际情况为准。路径:/application/push/controller/Run.php。
2024-02-01 10:06:52 576
原创 Yii2之类自动加载
同时这里通过把spl_autoload_register()方法第三个参数赋值为true,把yii的类加载器放在了加载器队列的最前面,所以当访问一个未加载的类的时候,yii的类自动加载器会最先被调用。这个方法首先会根据需要加载的类的名称去Yii::$classMap这个映射数组中查找,若存在则引入对应的类文件,不存在则进行别名解析得到完整文件路径,这里也说明若使用的类不在YII::$classMap中事先定义,则类名必须以有效的根别名打头,否则无法找到对应文件。//注册yii的类自动加载器。
2024-01-31 09:51:34 657
原创 yii2 mongodb 操作
类似mysql in操作 ($categoryIdArr是数组)->where(['label'=>['$regex' =>'赞美诗']]) 模糊搜索操作。->where(['','review',""]) 不等于空。->offset(3)从第三条开始。->limit(3)取三条数据。查询多条数据和单条数据。
2024-01-31 09:50:32 655
原创 shell 判断文件是否存在
then //一定要注意[] 與裡面的內容要有空格隔开 例如 if [(空格)${a} -eq 3(空格)];if [ -n $string ] 如果string 非空(非0),返回0(true)if [ int1 -eq int2 ] 如果int1等于int2。if [ int1 -ne int2 ] 如果不等于。if [ int1 -ge int2 ] 如果>=if [ int1 -gt int2 ] 如果>if [ int1 -le int2 ] 如果。
2024-01-30 10:10:11 703
原创 service mysqld start
此命令位于/sbin目录下,用file命令查看此命令会发现它是一个脚本命令。分析脚本可知此命令的作用是去/etc/init.d目录下寻找相应的服务,进行开启和关闭等操作。service命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动(start)、停止(stop)、重新启动(restart)和关闭系统服务,还可以显示所有系统服务的当前状态(status)。服务名:自动要控制的服务名,即/etc/init.d目录下的脚本文件名;service(选项)(参数)
2024-01-30 10:09:14 129
原创 getopt() 冒号规则
首先是不带冒号的 abcdef 写法,返回的数组中都包含键,但没有值,对应上面的规则就是不接受这些参数选项的值,你传了这些参数选项也是只有键名而内容是空的。上文中我们提到过参数中断的问题,就是在选项参数之后如果有一个非选项参数的参数出现,getopt() 就无法再获取到这个非选项参数后面的所有内容了。注释已经写得很清晰了,第三个参数会回调一个参数选项中断位置的索引,并且这个索引是和 $argv 的索引顺序位置一致的。第三段是空格形式的选项值,双冒号 :: 有键名但没有值,单冒号 : 键值正常。
2024-01-29 09:42:22 824
原创 php cli模式下获取参数的方法
首先要说明的是,ccc 和 ddd 不是标准的选项参数,也就是说,这个函数接收的内容是以 - 开头的选项,所以 ccc 和 ddd 不会在这里输出,并且需要注意的是,非选项参数会中断选项参数的获取,在 ccc 之后如果继续添加 - 开头的选项也是无法获取到的,这个我们后面还会看到。其实就是这样一个简单的函数,我们就可以像 Linux 的命令选项一样获取指定的命令值。可以看到argv[0]为当前执行的php文件名称,而argv[1]~argv[3]则是传递的参数的值。argv[2]等于is_hot的值。
2024-01-29 09:40:36 998
原创 查看php-fpm占用内存情况
x extended Show the extended format. 显示扩展格式 -d device Show the device format. 显示设备格式 -q quiet Do not display some header/footer lines. 不显示头尾行 -V show version Displays version of program. 显示版本。是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。2 查看单个php-fpm进程消耗内存的明细。
2024-01-26 10:06:52 362
原创 awk 分析日志命令
9 grep "24/Mar/2019" host.access.log |awk '{print $4}' | cut -c14-21 | sort | uniq -c | sort -rn | head -10 某一天的每小时请求量统计 12、统计每小时的请求数,top100的时间点(精确到小时)12 awk '{print $1}' access.log | sort -n |uniq -c |awk '{if($1 >100) print $0}'|sort -rn 查看访问100次以上的IP。
2024-01-26 10:05:14 182
原创 服务器宝塔安全需要修改的设置
我们建议在生产环境只开放uploads和runtime目录的读写权限,其次还需要关闭uploads目录执行PHP的权限,因为很多时候用户上传恶意脚本,而服务端uploads目录又未屏蔽PHP,导致用户数据泄漏丢失。目录安全在是经常容易生产问题的一个环节,很多时候我们都会忽略或忘记进行站点目录安全的配置。通过以上的配置还不够,我们还需要继续对服务器做WEB配置以限制PHP脚本的运行。Nginx可以通过以下配置禁止PHP脚本执行。4 面板设置 basicauth。2 设置第一层访问密码。
2024-01-25 09:39:19 1234
原创 php5.0到5.6的新特性,开发时应注意版本的兼容性
改变数组函数 natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip(), 和 array_unique() 将不再接受对象作为参数。改变get_class(),get_parent_class()和get_class_methods() 返回的类/方法名和定义时的名字一致(区分大小写)改变get_magic_quotes_gpc() 和 get_magic_quotes_runtime() 现在总是返回 FALSE。
2024-01-24 09:53:11 505
原创 ftp连接报错:227 entering passive mode
用阿里的云服务器,宝塔安装的linux环境,ftp连接总包这个错误:227 entering passive mode (172,17,149,105,155,72)如果使用的是阿里云服务器,需要在安全组设置中,对22、21端口放行,并且被动端口(39000 - 40000)也需要处于放行状态。
2024-01-23 10:15:17 2431
原创 yii2 手动安装第三方扩展
1复制第三方扩展到C:\Users\xpz\Documents\NetBeansProjects\yiicms\admincms.china.com\vendor\yiisoft\目录下。2 添加自动加载:打开vendor/yiisoft/extensions.php 文件,在里面的数组里增加一项,如下面代码。
2024-01-19 09:52:55 471
原创 TP5手动集成GatewayWorker
Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架,而GatewayWorker则是基于Workerman开发的一个长连接框架,支持分布式部署,支持全局广播或者向任意客户端推送数据,作为快速开发TCP长连接应用非常方便;重点://由于是手动添加,因此需要注册命名空间,方便自动加载,具体代码路径以实际情况为准。//由于是手动添加,因此需要注册命名空间,方便自动加载,具体代码路径以实际情况为准。路径:/application/push/controller/Run.php。
2024-01-19 09:51:04 658
原创 env的解释
env: 用于显示系统中已存在的环境变量,以及在定义的环境中执行指令。变量定义:定义在新的环境中变量,定义多个变量定义用空格隔开。格式为“变量名=值”比如 echo $PATH echo $USER等。只要是env里存在的变量,用echo都可以打印。
2024-01-17 10:34:40 765
原创 thinkphp 可执行文件think
usr/bin/env php会好些,当然更好的是#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} php一般使用#!/usr/bin/env -S -P/usr/local/bin:/usr/bin php的作用就是在/usr/local/bin和/usr/bin目录下寻找php。/usr/bin/php think spider --user php软连接到php的安装目录下的可执行文件(/www/server/php/73/bin/php)
2024-01-17 10:33:41 1725
原创 thinkphp 命令行执行
echo $PATH/root/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin这里/usr/local/bin优先于/usr/bin。上面的意思是,linux执行任何命令,都会先去/usr/local/sbin,如果没有再去/usr/local/bin下面,如果还没有就去/usr/local/bin,以此类推,如果都没有,就会提示找不到命令。/usr/bin存放一些用户命令,如led(控制LED灯的)。
2024-01-16 10:12:05 1572
原创 正则表达式修饰符 i、g、m、s、U、x、a、D、e 等。
str.match(reg1) // 结果为:["a", index: 0, input: "aaaaaaaa"] var reg2 = /a/g;str.match(reg2) // 结果为:["a", "a", "a", "a", "a", "a", "a", "a"]str.match(preg1) // 结果为:["abc", "abc"] var preg2 = /ab$/gm;str.match(preg2) // 结果为:["ab", "ab"]
2024-01-16 10:06:03 930
原创 设置 SSH 通过密钥登录
但是,一般的密码方式登录,容易有密码被暴力破解的问题。所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者禁用 root 账户登录。今后,当你使用 PuTTY 登录时,可以在左侧的 Connection -> SSH -> Auth 中的 Private key file for authentication: 处选择你的私钥文件,然后即可登录了,过程中只需输入密钥锁码即可。下面来讲解如何在 Linux 服务器上制作密钥对,将公钥添加给账户,设置 SSH,最后通过客户端登录。
2024-01-15 10:43:44 867
原创 window下执行php命令
我的电脑-》属性-》高级-》环境变量-》系统变量->Path->编辑->查看路径下有没有php目录,如果没有加上。第二,一定要重启cmd。
2024-01-15 10:43:14 599
原创 thinkphp 模板解析
1 初始化方法里给设置了默认模板路径view_path if (empty(this->config['view_path'] = App::$modulePath . 'view' . DS;D:\thinkphp\thinkphp\library\think\Template.php 1 初始化方法定义了缓存路径 $this->config['cache_path'] = TEMP_PATH;// 视图输出字符串内容替换 'view_replace_str' => [],初始化时定义了静态文件路径。
2024-01-11 09:30:46 657
原创 shell命令
在shell的命令行下直接使用[export 变量名=变量值] 定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话 还需要重新定义。用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。3.1 使用echo命令查看单个环境变量。
2024-01-11 09:28:06 342
原创 GeoIP的使用 - PHP版
首先我们需要数据信息,所以先获取一个免费的数据库:http://sjolzy.cn/php/GeoIP/bak/GeoIP.dat.gz ,接着解压得到:GeoIP.dat, 然后就是对数据文件的按需操作,这边范例使用的是PHP。所谓GeoIP,就是通过来访者的IP, 定位他的经纬度,国家/地区,省市,甚至街道等位置信息。下载 GeoIP 的 PHP 文件geoip.inc,保存为 geoip.inc.php。下载地址 http://pecl.php.net/package/geoip。
2024-01-10 09:32:49 671
原创 php curl 传参文件
有 curl_file_create 和 CURLFile 两种方法,这两种方法是我亲自测试过的好用(我用的php版本是7,而5.5之前是可以用@这个方法,我没有测试过)第一种:curl_file_create方法,具体curl_file_create参数请自行百度。第二种方法:CURLFile 可以介绍前端的file参数,直接上传到第三方地址。第三方地址介绍参数(也是php)直接用_FILES就可以。
2024-01-10 09:30:43 1201
原创 【redis】redis的bind配置
我使用的阿里云的服务器。我们从ifconfig可以看出:lo网卡(对应127.0.0.1IP地址):是一个回环地址(Local Loopback),也就是只有本地才能访问到这个回环地址,而其他的计算机也只能访问他们自己的回环地址。bind:是绑定本机的IP地址,(准确的是:本机的网卡对应的IP地址,每一个网卡都有一个IP地址),而不是redis允许来自其他计算机的IP地址。如果我们想限制只有指定的主机可以连接到redis中,我们只能通过防火墙来控制,而不能通过redis中的bind参数来限制。
2024-01-09 10:37:48 1316
这是我整理的中国历史人物的数据库
2023-12-22
最全的成语数据库(mysql)
2022-09-06
ffmpeg一键安装脚本
2022-09-05
MySQL的优化多种方法(至少15条)
2022-08-31
mysql优化有哪些技巧?
2022-08-31
诗词诗人数据库,mysql文件
2022-04-15
使用CSS3滤镜的filter:blur属性制作毛玻璃模糊效果的方法
2021-12-16
uniapp 微信H5分享 下载就能用
2021-12-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人