PHP
思维小刀
这个作者很懒,什么都没留下…
展开
-
PHP依赖注入和容器
Docker主要就是借助 Linux 内核技术Namespace来做到隔离的,其实包括文件的隔离,资源的隔离都是在新的命名空间下通过mount挂载的方式来隔离的。Do处。原创 2022-05-17 23:05:55 · 230 阅读 · 0 评论 -
PHP输出文件的函数
HTTP属性的函数需要好好看下!$file_name = $aaa[0]['x'];header ( "Cache-Control: max-age=0" );//不缓存header ( "Content-Description: File Transfer" );//文件传输header ( 'Content-disposition: attachment; filename=' ...原创 2019-09-23 18:13:08 · 455 阅读 · 0 评论 -
PHP自动加载spl_autoload_register()
__autoloadprintit.class.php<?phpclass PRINTIT { function doPrint() { echo 'hello world'; }}index.php<?function __autoload( $class ) { $file = $class . '.class.php'; if ( is_file($file) ) { require_once($file); }}$obj = new PRIN原创 2021-08-12 19:54:03 · 270 阅读 · 0 评论 -
PHP的instanceof作用
(1)判断一个对象是否是某个类的实例(2)判断一个对象是否实现了某个接口(3)判断一个方法是不是闭包函数 【laravel框架中bind函数用到了】原创 2021-07-30 10:55:29 · 118 阅读 · 0 评论 -
PHP对URL进行字符串编码
//对URL进行字符串编码和解码$url1 = 'https://www.baidu.com/uploade/img/123.png';echo $url1;echo '<br>';$url = urlencode($url1);//编码 输出https%3A%2F%2Fwww.baidu.com%2Fuploade%2Fimg%2F123.pngecho $url;echo '<br>';$url = urldecode($url);//解码 输出 https://.原创 2021-07-19 09:35:15 · 650 阅读 · 0 评论 -
PHP通过GET方法参数为数组请求
http://xthk.cn/api/getFilters?city_ids[0]=11&city_ids[1]=22&city_ids[2]=33city_ids[0]:11city_ids[1]:22city_ids[2]:33sign:05a671c66aefea124cc08b76ea6d30bb原创 2021-06-24 20:00:17 · 813 阅读 · 2 评论 -
PHP如何解决 Composer 时内存不够
Loading composer repositories with package informationUpdating dependencies (including require-dev)PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/Dependen.原创 2021-06-15 10:38:36 · 222 阅读 · 1 评论 -
PHP的composer清除缓存
清除缓存composer clear-cache原创 2021-06-08 10:17:09 · 4242 阅读 · 0 评论 -
PHP设置块注释的模板
/***${PARAM_DOC}#if (${TYPE_HINT} != "void") * @return ${TYPE_HINT}#end${THROWS_DOC}author:sunxiao ${DATE} ${TIME}*/原创 2021-06-04 20:25:55 · 371 阅读 · 1 评论 -
PHP的composer dump-autoload
除了psr-4的自动加载规则,其他的需要执行这个命令,composer才能自动加载到可以看到 psr-4 或者 psr-0 的自动加载都是一件很累人的事儿。基本是个O(n2)的复杂度。另外有一大堆is_file之类的 IO 操作所以性能堪忧所以给出的解决方案就是空间换时间Compsoer\ClassLoader会优先查看autoload_classmap中所有生成的注册类。如果在classmap中没有发现再 fallback 到 psr-4 然后 psr-0所以当打了comp...原创 2021-05-27 17:59:18 · 2184 阅读 · 0 评论 -
PHP使用Charles抓包手机
手机和电脑连同一个WiFi 修改手机上的WiFi代理设置, 把服务器的主机名设置成电脑当前的ip地址, 端口8888 Windows在cmd输入ipconfig查看,Mac在cmd输入ifconfig查看原创 2021-05-27 16:50:34 · 169 阅读 · 0 评论 -
PHP如何复制前端传递的json数据
原创 2021-05-26 15:18:05 · 119 阅读 · 0 评论 -
PHP微信支付没有收到微信的回调怎么修改订单状态:主动查询
正常情况下微信会返回SUCCESS,如果没有返回就调用主动查询订单接口,https://pay.weixin.qq.com/wiki/doc/api/j...该接口提供所有微信支付订单的查询,商户可以通过该接口主动查询订单状态,完成下一步的业务逻辑。...原创 2021-05-17 23:13:24 · 448 阅读 · 0 评论 -
PHP的APACHE CGI、FastCGI及其对应PHP-CGI PHP-FPM
1Web Server与app传递数据的方法:Apache采用PHP Module加载模块的方式apache配置说起apache配置如下 #添加下边两行LoadModule php5_module D:/php/php5apache2_2.dllAddType application/x-httpd-php .php# 修改如下内容<IfModule dir_module> DirectoryIndex index.php index.html</IfMod原创 2021-05-12 15:08:27 · 374 阅读 · 1 评论 -
PHP-FPM配置文件:日志文件、端口设置、动态静态选择设置
在php-fpm.conf文件中添加如下配置pm.max_children = 100pm.start_servers = 30pm.min_spare_servers = 20pm.max_spare_servers = 100pm.max_requests = 500pm.max_children:静态方式下开启的php-fpm进程数量pm.start_servers:动态方式下的起始php-fpm进程数量pm.min_spare_servers:动态方式下的最小php-fpm进程原创 2021-05-12 14:00:46 · 1663 阅读 · 0 评论 -
PHP进行生成并且导出CSV文件
1.参考 https://www.cnblogs.com/woods1815/p/11875913.html2.基础 CSV文件是以纯文本形式存储的,一般以逗号为分隔符3.浏览器导出CSV文件格式/** * 导出CSV文件 */function exportCsv(){ // 需要导出的内容 $data = [ ['name' => '张三', 'score' => '80'], ['name...原创 2021-01-25 15:32:32 · 715 阅读 · 0 评论 -
PHPStorm的命令行配置成为Git bash的
原创 2021-01-25 11:57:17 · 385 阅读 · 0 评论 -
PHP与Redis结合令牌桶算法进行实现限流
https://www.php.cn/php-ask-448027.html原创 2021-01-15 18:45:11 · 215 阅读 · 0 评论 -
PHP上传方式base64图片的接收方式
if (!empty($base64_img) && preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_img, $result)) { // 图片格式校验 switch ($result[2]) { case 'jpeg' : case 'pjpeg' : $ext = 'jp.原创 2020-12-28 11:36:30 · 757 阅读 · 0 评论 -
PHP浏览器中的data类型的Url格式,data:image/png
背景data类型的直接从网页载入 不用素材文件了 更快!综合data:,<文本数据>data:text/plain,<文本数据>data:text/html,< HTML 代码>data:text/html;base64,< base64 编码的HTML代码>data:text/css,< CSS 代码>data:text/css;base64,< base64 编码的CSS代码>data:text/jav..原创 2020-12-23 15:09:51 · 603 阅读 · 0 评论 -
PHP的chunk_split() 函数把字符串分割为一连串更小的部分
chunk_split() 函数把字符串分割为一连串更小的部分。chunk_split(string,length,end)string 必需。规定要分割的字符串。 length 可选。数字值,定义字符串块的长度。默认是 76。 end 可选。字符串值,定义在每个字符串块末端放置的内容。默认是 \r\n。 <?phpecho chunk_split("Shanghai",2,".");Sh.an.gh.ai....原创 2020-12-23 14:56:50 · 219 阅读 · 0 评论 -
PHP中 base64_decode与base64_encode加密解密函数
base64_encode是加密base64_encode 语法:string base64_encode(string data);$string='www.zhix.net智昕网络';//定义字符串echobase64_encode($string);// 输出编码后的内容为 d3d3LnpoaXgubmV05pm65piV572R57ucbase64_decode是解密base64_decode 语法:string base64_decode(string...原创 2020-12-23 14:53:09 · 2385 阅读 · 0 评论 -
PHP的getimagesize获取图像信息
getimagesize() 函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息。索引 0 给出的是图像宽度的像素值索引 1 给出的是图像高度的像素值索引 2 给出的是图像的类型,返回的是数字,其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 .原创 2020-12-23 14:48:53 · 186 阅读 · 0 评论 -
PHP的composer的快速源
验证很快的composer源"url": "https://mirrors.aliyun.com/composer/"{ "name": "topthink/think", "description": "the new thinkphp framework", "type": "project", "keywords": [ "framework", "thinkphp", "ORM" ], "h..原创 2020-12-23 13:46:30 · 356 阅读 · 0 评论 -
PHP的函数file_get_contents() 把整个文件读入一个字符串中
file_get_contents('http://erptest.bajiechewu.com/admin.php?a=selfApi&c=sendWxTextMsg&wxid=KFXS-004&content=[高德-六年免检]订单号:' .$dealCode.'退款失败');file_get_contents(SITE_PATH.'/.htaccess');原创 2020-12-23 10:29:30 · 161 阅读 · 0 评论 -
PHP的file_put_contents函数把一个字符串写入文件中
file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )file_put_contents(SITE_PATH.'/tic1.html','时间:111\r\n".PHP_EOL,FILE_APPEND);原创 2020-12-23 09:59:16 · 290 阅读 · 0 评论 -
PHP安装TP6的composer install报Undefined index: process 进程依赖于proc_open 这个函数不可用
报错方法没有添加Swoole扩展原创 2020-12-10 11:54:29 · 3888 阅读 · 2 评论 -
PHP中类明明存在 但class_exists 确检测不到的坑: 使用完整命名空间
代码namespace amsx\account; class ActiveCodeProcessor{ private static $_processerPool = []; /** * @param $type * @return ActiveCodeProcessor */ public static function getCodeProcessorObj($type){ if(!key_exists($type, self::$_processerPool).原创 2020-12-09 18:02:23 · 1027 阅读 · 0 评论 -
PHP的var_dump(0 == ‘all‘)为TRUE的原因
代码<?phpvar_dump(0 == 'all');//bool(true)原因做比较会先转换类型, all字符串转换成数字类型就是 0 , 所以中间成立返回真原创 2020-11-26 17:51:40 · 291 阅读 · 0 评论 -
PHP的var_dump(‘1‘==‘1e0‘)的结果为true
今天,同学问我一个问题,如下:var_dump("1" == "1e0"); 的结果是什么。我的第一反应,答案是false。因为很明显的要比较的是两个字符串,而字符串比较时,只需比较其内容即可。很明显, 两个字符串的内容并不一样,当然是false了。然而,我又注意到要比较的字符串中存在一个纯数字字符串“1”,那根据规则,当要比较的是两个纯数字字符串时要转换成数值型来比较。这里只有一个。所以仍应该安字符串来比较,结果仍为false。但实际运行代码,结果确实true,我和我的小伙伴都震惊了!!怎么可原创 2020-11-26 17:49:01 · 556 阅读 · 0 评论 -
PHP金额计算高精度函数
PHP浮点数计算精度不够,以下是几个精度计算函数bcadd — 将两个高精度数字相加bccomp — 比较两个高精度数字,返回-1, 0, 1bcdiv — 将两个高精度数字相除bcmod — 求高精度数字余数bcmul — 将两个高精度数字相乘bcpow — 求高精度数字乘方bcpowmod — 求高精度数字乘方求模,数论里非常常用bcscale — 配置默认小数点位数,相当于就是Linux bc中的”scale=”bcsqrt — 求高精度数字平方根bcsub — 将两个高精度.原创 2020-11-26 16:50:30 · 1595 阅读 · 0 评论 -
PHP文件函数 记录日志功能
1.简介1 判断文件/目录是否存在 1.1 is_file函数 1.2 is_dir函数 1.3 file_exists() 函数2 读取文件 2.1 file_get_contents()函数 2.2 fread() 函数3 写入文件 3.1 PHP fwrite() 函数 3.2 file_put_contents()函数4 创建目录/删除/复制 4.1 mkdir函数,创建目录 4.2 rmdir函数,删除目录原创 2020-11-24 15:58:38 · 230 阅读 · 0 评论 -
PHP获取字符串中的某个字符:采用数组的方式
$str='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';print($str[1]);使用数组形式获取,输出为B;原创 2020-11-06 23:50:47 · 1054 阅读 · 0 评论 -
PHP-fpm 记录慢执行日志
有时候我们访问一个 php 的网站很慢,要想知道慢的原因,需要配置 php-fpm.conf,记录执行慢的日志:[root@localhost ~]$ cat /usr/local/php/etc/php-fpm.conf[global]pid = /usr/local/php/var/run/php-fpm.piderror_log = /usr/local/php/var/log/php-fpm.log[www]......原创 2020-11-06 22:59:13 · 194 阅读 · 0 评论 -
PHP的bcadd()函数用法:求和后保留X位小数的函数
求和后保留X位小数的函数:一般用于价格累加。查询出来的价格即使是浮点型,但是运用“+=”后会变成整型,若需求需要保留小数位,则需要用到这个函数bcadd(被加数,加数,保留几位小数);bcadd(1,3,2);//4.00...原创 2020-11-06 16:03:35 · 935 阅读 · 0 评论 -
PHP使用PDO方式的经验总结:连接 增删改查
连接 public function pdo() { if (ENV == 'test') { $host = '2243.519.1106.725'; $user = 'ttt'; $pwd = 'ttt'; $db = 'csh'; } else { $host = '123.668.1070.206'; $use原创 2020-10-30 10:48:39 · 268 阅读 · 0 评论 -
PHPstudy新版小P面板进行设置版本
原创 2020-10-24 15:44:46 · 2048 阅读 · 0 评论 -
WeChat微信商户号JSAPI支付 支付授权目录无法添加:添加完成后不刷新再添加一遍
添加支付目录后,按流程正确输入操作密码后。界面会跳回来,这个时候发现并没有添加成功。接下来不要刷新网页,也不要点击别的模块。再添加一次刚才添加的目录。这个时候,你会发现不用输入操作密码了,然后,目录也添加成功了...原创 2020-10-24 17:31:33 · 1550 阅读 · 0 评论 -
PHP-fpm的master进程杀死work还能处理任务吗
结论master进程并不接收和分发请求,而是worker进程直接accpet请求后poll处理.master进程不断调用epoll_wait和getsockopt是用来异步处理信号事件和定时器事件.验证方法把Nginx和fpm都设置成了1个worker进程观察,得出结论是不会经过fpm的master进程.strace -e network -p fpm_master_pidstrace -e network -p fpm_worker_pid总结php-fpm是一个完全独立的程序原创 2020-10-24 15:49:56 · 808 阅读 · 0 评论 -
PHP订单流程
流程点击下单按钮 判断库存 判断上下架状态:合适允许继续 否则报警 商品减库存 增加销量 生成订单状态 点击支付 进行支付 更改订单状态 发货、物流状态、订单状态 确认收货、物流状态、订单状态 完成订单,修改订单状态 评论 追加评论下单未支付跑一个定时任务,把商品数据还原...原创 2020-10-24 15:50:10 · 751 阅读 · 0 评论